Get the App
SLTechnology News&Howtos  ›  Database  › 

Mongo Advanced query

Shulou Source: shulou.com Published: 2022-06-01 13:49:34 09月27日 Update

1. Conditional operator

(1) conditional operator

Db.collection.find ({"field": {$gt: value}}); / / greater than: field > value

Db.collection.find ({"field": {$lt: value}}); / / less than: field

< value db.collection.find({ "field" : { $gte: value } } ); // 大于等于: field >

= value

Db.collection.find ({"field": {$lte: value}}); / less than or equal to: field db.user.find ()

{"_ id": ObjectId ("4fb4af85afa87dc1bed94330"), "age": 7, "length_1": 30}

{"_ id": ObjectId ("4fb4af89afa87dc1bed94331"), "age": 8, "length_1": 30}

{"_ id": ObjectId ("4fb4af8cafa87dc1bed94332"), "age": 6, "length_1": 30}

> db.user.find ({age: {$mod: [6jue 1]}})

{"_ id": ObjectId ("4fb4af85afa87dc1bed94330"), "age": 7, "length_1": 30}

(5) $ne is not equal to

Query data where the value of age is not equal to 7

> db.user.find ({age: {$ne:6}})

{"_ id": ObjectId ("4fb4af85afa87dc1bed94330"), "age": 7, "length_1": 30}

{"_ id": ObjectId ("4fb4af89afa87dc1bed94331"), "age": 8, "length_1": 30}

> db.user.find ({age: {$ne:7}})

{"_ id": ObjectId ("4fb4af89afa87dc1bed94331"), "age": 8, "length_1": 30}

{"_ id": ObjectId ("4fb4af8cafa87dc1bed94332"), "age": 6, "length_1": 30}

(6) $in contains

Query data with a value of age in the range of 7 and 8

> db.user.find ({age: {$in: [7 in 8]}})

{"_ id": ObjectId ("4fb4af85afa87dc1bed94330"), "age": 7, "length_1": 30}

{"_ id": ObjectId ("4fb4af89afa87dc1bed94331"), "age": 8, "length_1": 30}

(7) min does not contain

Query data whose value of age is outside the range of 7 and 8

> db.user.find ({age: {$nin: [7 nin 8]}})

{"_ id": ObjectId ("4fb4af8cafa87dc1bed94332"), "age": 6, "length_1": 30}

(8) number of elements in the $size array

Match db.users.find ({favorite_number: {$size: 3}})

Mismatch db.users.find ({favorite_number: {$size: 2}})

> db.user.find ({favorite_number: {$size:3}})

{"_ id": ObjectId ("579eee3d8aeb5abda0d54b5e"), "name": "David", "age": 26, "favorite_number": [6, 7, 9]}

> db.user.find ({favorite_number: {$size:2}})

>

(9) regular expression matching

Query data for which name does not begin with T

Db.user.find ()

{"_ id": ObjectId ("4fb5faaf6d0f9d8ea3fc91a8"), "name": "Tony", "age": 20}

{"_ id": ObjectId ("4fb5fab96d0f9d8ea3fc91a9"), "name": "Joe", "age": 10}

> db.user.find ({name: {$not:/ ^ T. * /}})

{"_ id": ObjectId ("4fb5fab96d0f9d8ea3fc91a9"), "name": "Joe", "age": 10}

>

(10) Javascript query and $where query

Query data with a greater than 3. The following query methods go the same way.

Db.c1.find ({a: {$gt: 3}})

Db.c1.find ({$where: "this.a > 3"})

Db.c1.find ("this.a > 3")

F = function () {return this.a > 3;} db.c1.find (f)

(11) number of count query records

> db.user.find ()

{"_ id": ObjectId ("4fb5faaf6d0f9d8ea3fc91a8"), "name": "Tony", "age": 20}

{"_ id": ObjectId ("4fb5fab96d0f9d8ea3fc91a9"), "name": "Joe", "age": 10}

> db.user.find () .count ()

two

>

(12) skip limit returns the starting point of the record

Query item 2 data in user

> db.user.find ()

{"_ id": ObjectId ("4fb5faaf6d0f9d8ea3fc91a8"), "name": "Tony", "age": 20}

{"_ id": ObjectId ("4fb5fab96d0f9d8ea3fc91a9"), "name": "Joe", "age": 10}

> db.user.find () .skip (1) .limit (1)

{"_ id": ObjectId ("4fb5fab96d0f9d8ea3fc91a9"), "name": "Joe", "age": 10}

>

(13) sort sorting

Query C1 table is sorted in ascending order of age

> db.user.find () .sort ({age:-1})

{"_ id": ObjectId ("4fb5faaf6d0f9d8ea3fc91a8"), "name": "Tony", "age": 20}

{"_ id": ObjectId ("4fb5fab96d0f9d8ea3fc91a9"), "name": "Joe", "age": 10}

> db.user.find () .sort ({age:1})

{"_ id": ObjectId ("4fb5fab96d0f9d8ea3fc91a9"), "name": "Joe", "age": 10}

{"_ id": ObjectId ("4fb5faaf6d0f9d8ea3fc91a8"), "name": "Tony", "age": 20}

>

(14) Vernier

For (var iTunes 1) for (var c=db.user.find (); c.hasNext ();) {printjson (c.next ());}

{"_ id": ObjectId ("579ef6198aeb5abda0d54b5f"), "x": 1}

{"_ id": ObjectId ("579ef6198aeb5abda0d54b60"), "x": 2}

{"_ id": ObjectId ("579ef6198aeb5abda0d54b61"), "x": 3}

{"_ id": ObjectId ("579ef6198aeb5abda0d54b62"), "x": 4}

{"_ id": ObjectId ("579ef6198aeb5abda0d54b63"), "x": 5}

{"_ id": ObjectId ("579ef6198aeb5abda0d54b64"), "x": 6}

{"_ id": ObjectId ("579ef6198aeb5abda0d54b65"), "x": 7}

{"_ id": ObjectId ("579ef6198aeb5abda0d54b66"), "x": 8}

{"_ id": ObjectId ("579ef6198aeb5abda0d54b67"), "x": 9}

>

Tags: Query data field operator condition scope different same destination number element ascending order just need beginning array method regular cursor expression syntax starting point Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Linux MySQL macOS Shulou Tech Info Apple