选择语言
On this page本页内容
➤ Use the Select your language drop-down menu in the upper-right to set the language of the following examples.使用右上角的“选择语言”下拉菜单设置以下示例的语言。
This page provides examples of query operations on array fields using the 本页提供了使用db.collection.find()
method in mongosh
. mongosh
中的db.collection.find()
方法对数组字段进行查询操作的示例。The examples on this page use the 本页上的示例使用inventory
collection. inventory
集合。To populate the 要填充inventory
collection, run the following:inventory
集合,请运行以下操作:
This page provides examples of query operations on array fields using MongoDB Compass. 本页提供了使用MongoDB Compass对数组字段进行查询操作的示例。The examples on this page use the 本页上的示例使用inventory
collection. inventory
集合。Populate the 使用以下文档填充inventory
collection with the following documents:inventory
集合:
This page provides examples of query operations on array fields using the MongoCollection.Find() method in the MongoDB C# Driver. The examples on this page use the inventory
collection. To populate the inventory
collection, run the following:
This page provides examples of query operations on array fields using the Collection.Find function in the MongoDB Go Driver. The examples on this page use the inventory
collection. To populate the inventory
collection, run the following:
This page provides examples of query operations on array fields using the com.mongodb.reactivestreams.client.MongoCollection.find method in the MongoDB Java Reactive Streams Driver.
The examples on this page use the inventory
collection. To populate the inventory
collection, run the following:
This page provides examples of query operations on array fields using the com.mongodb.client.MongoCollection.find method in the MongoDB Java Synchronous Driver.
The driver provides com.mongodb.client.model.Filters helper methods to facilitate the creation of filter documents. The examples on this page use these methods to create the filter documents.
The examples on this page use the inventory
collection. To populate the inventory
collection, run the following:
This page provides examples of query operations on array fields using the motor.motor_asyncio.AsyncIOMotorCollection.find
method in the Motor driver. The examples on this page use the inventory
collection. To populate the inventory
collection, run the following:
This page provides examples of query operations on array fields using the Collection.find() method in the MongoDB Node.js Driver. 本页提供了使用MongoDB Node.js驱动程序中的Collection.find()方法对数组字段进行查询操作的示例。The examples on this page use the 本页上的示例使用inventory
collection. inventory
集合。To populate the 要填充inventory
collection, run the following:inventory
集合,请运行以下操作:
This page provides examples of query operations on array fields using the MongoDB::Collection::find() method in the MongoDB Perl Driver. The examples on this page use the inventory
collection. To populate the inventory
collection, run the following:
This page provides examples of query operations on array fields using the MongoDB\\Collection::find()
method in the MongoDB PHP Library. The examples on this page use the inventory
collection. To populate the inventory
collection, run the following:
This page provides examples of query operations on array fields using the pymongo.collection.Collection.find
method in the PyMongo Python driver. The examples on this page use the inventory
collection. To populate the inventory
collection, run the following:
This page provides examples of query operations on array fields using the Mongo::Collection#find() method in the MongoDB Ruby Driver. The examples on this page use the inventory
collection. To populate the inventory
collection, run the following:
This page provides examples of query operations on array fields using the collection.find() method in the MongoDB Scala Driver. The examples on this page use the inventory
collection. To populate the inventory
collection, run the following:
db.inventory.insertMany([ { item: "journal", qty: 25, tags: ["blank", "red"], dim_cm: [ 14, 21 ] }, { item: "notebook", qty: 50, tags: ["red", "blank"], dim_cm: [ 14, 21 ] }, { item: "paper", qty: 100, tags: ["red", "blank", "plain"], dim_cm: [ 14, 21 ] }, { item: "planner", qty: 75, tags: ["blank", "red"], dim_cm: [ 22.85, 30 ] }, { item: "postcard", qty: 45, tags: ["blue"], dim_cm: [ 10, 15.25 ] } ]);
You can run the operation in the web shell below:您可以在下面的web shell中运行该操作:
[ { "item": "journal", "qty": 25, "tags": ["blank", "red"], "dim_cm": [ 14, 21 ] }, { "item": "notebook", "qty": 50, "tags": ["red", "blank"], "dim_cm": [ 14, 21 ] }, { "item": "paper", "qty": 100, "tags": ["red", "blank", "plain"], "dim_cm": [ 14, 21 ] }, { "item": "planner", "qty": 75, "tags": ["blank", "red"], "dim_cm": [ 22.85, 30 ] }, { "item": "postcard", "qty": 45, "tags": ["blue"], "dim_cm": [ 10, 15.25 ] } ]
For instructions on inserting documents in MongoDB Compass, see Insert Documents.有关在MongoDB Compass中插入文档的说明,请参阅插入文档。
var documents = new[] { new BsonDocument { { "item", "journal" }, { "qty", 25 }, { "tags", new BsonArray { "blank", "red" } }, { "dim_cm", new BsonArray { 14, 21 } } }, new BsonDocument { { "item", "notebook" }, { "qty", 50 }, { "tags", new BsonArray { "red", "blank" } }, { "dim_cm", new BsonArray { 14, 21 } } }, new BsonDocument { { "item", "paper" }, { "qty", 100 }, { "tags", new BsonArray { "red", "blank", "plain" } }, { "dim_cm", new BsonArray { 14, 21 } } }, new BsonDocument { { "item", "planner" }, { "qty", 75 }, { "tags", new BsonArray { "blank", "red" } }, { "dim_cm", new BsonArray { 22.85, 30 } } }, new BsonDocument { { "item", "postcard" }, { "qty", 45 }, { "tags", new BsonArray { "blue" } }, { "dim_cm", new BsonArray { 10, 15.25 } } } }; collection.InsertMany(documents);
docs := []interface{}{ bson.D{ {"item", "journal"}, {"qty", 25}, {"tags", bson.A{"blank", "red"}}, {"dim_cm", bson.A{14, 21}}, }, bson.D{ {"item", "notebook"}, {"qty", 50}, {"tags", bson.A{"red", "blank"}}, {"dim_cm", bson.A{14, 21}}, }, bson.D{ {"item", "paper"}, {"qty", 100}, {"tags", bson.A{"red", "blank", "plain"}}, {"dim_cm", bson.A{14, 21}}, }, bson.D{ {"item", "planner"}, {"qty", 75}, {"tags", bson.A{"blank", "red"}}, {"dim_cm", bson.A{22.85, 30}}, }, bson.D{ {"item", "postcard"}, {"qty", 45}, {"tags", bson.A{"blue"}}, {"dim_cm", bson.A{10, 15.25}}, }, } result, err := coll.InsertMany(context.TODO(), docs)
Publisher<Success> insertManyPublisher = collection.insertMany(asList( Document.parse("{ item: 'journal', qty: 25, tags: ['blank', 'red'], dim_cm: [ 14, 21 ] }"), Document.parse("{ item: 'notebook', qty: 50, tags: ['red', 'blank'], dim_cm: [ 14, 21 ] }"), Document.parse("{ item: 'paper', qty: 100, tags: ['red', 'blank', 'plain'], dim_cm: [ 14, 21 ] }"), Document.parse("{ item: 'planner', qty: 75, tags: ['blank', 'red'], dim_cm: [ 22.85, 30 ] }"), Document.parse("{ item: 'postcard', qty: 45, tags: ['blue'], dim_cm: [ 10, 15.25 ] }") ));
collection.insertMany(asList( Document.parse("{ item: 'journal', qty: 25, tags: ['blank', 'red'], dim_cm: [ 14, 21 ] }"), Document.parse("{ item: 'notebook', qty: 50, tags: ['red', 'blank'], dim_cm: [ 14, 21 ] }"), Document.parse("{ item: 'paper', qty: 100, tags: ['red', 'blank', 'plain'], dim_cm: [ 14, 21 ] }"), Document.parse("{ item: 'planner', qty: 75, tags: ['blank', 'red'], dim_cm: [ 22.85, 30 ] }"), Document.parse("{ item: 'postcard', qty: 45, tags: ['blue'], dim_cm: [ 10, 15.25 ] }") ));
await db.inventory.insert_many( [ {"item": "journal", "qty": 25, "tags": ["blank", "red"], "dim_cm": [14, 21]}, {"item": "notebook", "qty": 50, "tags": ["red", "blank"], "dim_cm": [14, 21]}, { "item": "paper", "qty": 100, "tags": ["red", "blank", "plain"], "dim_cm": [14, 21], }, {"item": "planner", "qty": 75, "tags": ["blank", "red"], "dim_cm": [22.85, 30]}, {"item": "postcard", "qty": 45, "tags": ["blue"], "dim_cm": [10, 15.25]}, ] )
await db.collection('inventory').insertMany([ { item: 'journal', qty: 25, tags: ['blank', 'red'], dim_cm: [14, 21] }, { item: 'notebook', qty: 50, tags: ['red', 'blank'], dim_cm: [14, 21] }, { item: 'paper', qty: 100, tags: ['red', 'blank', 'plain'], dim_cm: [14, 21] }, { item: 'planner', qty: 75, tags: ['blank', 'red'], dim_cm: [22.85, 30] }, { item: 'postcard', qty: 45, tags: ['blue'], dim_cm: [10, 15.25] } ]);
$db->coll("inventory")->insert_many( [ { item => "journal", qty => 25, tags => [ "blank", "red" ], dim_cm => [ 14, 21 ] }, { item => "notebook", qty => 50, tags => [ "red", "blank" ], dim_cm => [ 14, 21 ] }, { item => "paper", qty => 100, tags => [ "red", "blank", "plain" ], dim_cm => [ 14, 21 ] }, { item => "planner", qty => 75, tags => [ "blank", "red" ], dim_cm => [ 22.85, 30 ] }, { item => "postcard", qty => 45, tags => ["blue"], dim_cm => [ 10, 15.25 ] } ] );
$insertManyResult = $db->inventory->insertMany([ [ 'item' => 'journal', 'qty' => 25, 'tags' => ['blank', 'red'], 'dim_cm' => [14, 21], ], [ 'item' => 'notebook', 'qty' => 50, 'tags' => ['red', 'blank'], 'dim_cm' => [14, 21], ], [ 'item' => 'paper', 'qty' => 100, 'tags' => ['red', 'blank', 'plain'], 'dim_cm' => [14, 21], ], [ 'item' => 'planner', 'qty' => 75, 'tags' => ['blank', 'red'], 'dim_cm' => [22.85, 30], ], [ 'item' => 'postcard', 'qty' => 45, 'tags' => ['blue'], 'dim_cm' => [10, 15.25], ], ]);
db.inventory.insert_many( [ {"item": "journal", "qty": 25, "tags": ["blank", "red"], "dim_cm": [14, 21]}, {"item": "notebook", "qty": 50, "tags": ["red", "blank"], "dim_cm": [14, 21]}, { "item": "paper", "qty": 100, "tags": ["red", "blank", "plain"], "dim_cm": [14, 21], }, {"item": "planner", "qty": 75, "tags": ["blank", "red"], "dim_cm": [22.85, 30]}, {"item": "postcard", "qty": 45, "tags": ["blue"], "dim_cm": [10, 15.25]}, ] )
client[:inventory].insert_many([{ item: 'journal', qty: 25, tags: ['blank', 'red'], dim_cm: [ 14, 21 ] }, { item: 'notebook', qty: 50, tags: ['red', 'blank'], dim_cm: [ 14, 21 ] }, { item: 'paper', qty: 100, tags: ['red', 'blank', 'plain'], dim_cm: [ 14, 21 ] }, { item: 'planner', qty: 75, tags: ['blank', 'red'], dim_cm: [ 22.85, 30 ] }, { item: 'postcard', qty: 45, tags: ['blue'], dim_cm: [ 10, 15.25 ] } ])
collection.insertMany(Seq( Document("""{ item: "journal", qty: 25, tags: ["blank", "red"], dim_cm: [ 14, 21 ] }"""), Document("""{ item: "notebook", qty: 50, tags: ["red", "blank"], dim_cm: [ 14, 21 ] }"""), Document("""{ item: "paper", qty: 100, tags: ["red", "blank", "plain"], dim_cm: [ 14, 21 ] }"""), Document("""{ item: "planner", qty: 75, tags: ["blank", "red"], dim_cm: [ 22.85, 30 ] }"""), Document("""{ item: "postcard", qty: 45, tags: ["blue"], dim_cm: [ 10, 15.25 ] }""") )).execute()
To specify equality condition on an array, use the query document 要在数组上指定相等条件,请使用查询文档{ <field>: <value> }
where <value>
is the exact array to match, including the order of the elements.{ <field>: <value> }
,其中<value>
是要匹配的确切数组,包括元素的顺序。
To specify equality condition on an array, use the query document 要在数组上指定相等条件,请使用查询文档{ <field>: <value> }
where <value>
is the exact array to match, including the order of the elements.{ <field>: <value> }
,其中<value>
是要匹配的确切数组,包括元素的顺序。
To specify equality condition on an array, construct a filter using the Eq method:
Builders<BsonDocument>.Filter.Eq(<field>, <value>)
<value>
is the exact array to match, including the order of the elements.
To specify equality condition on an array, use the query document eq( <field>, <value>)
where <value>
is the exact array to match, including the order of the elements.
To specify equality condition on an array, use the query document eq( <field>, <value>)
where <value>
is the exact array to match, including the order of the elements.
To specify equality condition on an array, use the query document { <field>: <value> }
where <value>
is the exact array to match, including the order of the elements.
To specify equality condition on an array, use the query document 要在数组上指定相等条件,请使用查询文档{ <field>: <value> }
where <value>
is the exact array to match, including the order of the elements.{ <field>: <value> }
,其中<value>
是要匹配的确切数组,包括元素的顺序。
To specify equality condition on an array, use the query document { <field> => <value> }
where <value>
is the exact array to match, including the order of the elements.
To specify equality condition on an array, use the query document [ <field> => <value> ]
where <value>
is the exact array to match, including the order of the elements.
To specify equality condition on an array, use the query document { <field>: <value> }
where <value>
is the exact array to match, including the order of the elements.
To specify equality condition on an array, use the query document { <field> => <value> }
where <value>
is the exact array to match, including the order of the elements.
To specify equality condition on an array, use the query document equal( <field>, <value> )
where <value>
is the exact array to match, including the order of the elements.
The following example queries for all documents where the field 以下示例查询字段tags
value is an array with exactly two elements, "red"
and "blank"
, in the specified order:tags
值为数组的所有文档,该数组正好包含两个元素,"red"
和"blank"
,按指定顺序排列:
db.inventory.find( { tags: ["red", "blank"] } )
Copy the following filter into the Compass query bar and click Find:将以下筛选器复制到Compass查询栏中,然后单击“查找”:
{ tags: ["red", "blank"] }
var filter = Builders<BsonDocument>.Filter.Eq("tags", new[] { "red", "blank" }); var result = collection.Find(filter).ToList();
cursor, err := coll.Find( context.TODO(), bson.D{{"tags", bson.A{"red", "blank"}}}, )
FindPublisher<Document> findPublisher = collection.find(eq("tags", asList("red", "blank")));
FindIterable<Document> findIterable = collection.find(eq("tags", asList("red", "blank")));
cursor = db.inventory.find({"tags": ["red", "blank"]})
const cursor = db.collection('inventory').find({ tags: ['red', 'blank'] });
$cursor = $db->coll("inventory")->find( { tags => [ "red", "blank" ] } );
$cursor = $db->inventory->find(['tags' => ['red', 'blank']]);
cursor = db.inventory.find({"tags": ["red", "blank"]})
client[:inventory].find(tags: ['red', 'blank'])
var findObservable = collection.find(equal("tags", Seq("red", "blank")))
If, instead, you wish to find an array that contains both the elements 相反,如果您希望查找包含"red"
and "blank"
, without regard to order or other elements in the array, use the $all
operator:"red"
和"blank"
元素的数组,而不考虑数组中的顺序或其他元素,请使用$all
运算符:
db.inventory.find( { tags: { $all: ["red", "blank"] } } )
Copy the following filter into the Compass query bar and click Find:将以下筛选器复制到Compass查询栏中,然后单击“查找”:
{ tags: { $all: ["red", "blank"] } }
var filter = Builders<BsonDocument>.Filter.All("tags", new[] { "red", "blank" }); var result = collection.Find(filter).ToList();
cursor, err := coll.Find( context.TODO(), bson.D{ {"tags", bson.D{{"$all", bson.A{"red", "blank"}}}}, })
findPublisher = collection.find(all("tags", asList("red", "blank")));
findIterable = collection.find(all("tags", asList("red", "blank")));
cursor = db.inventory.find({"tags": {"$all": ["red", "blank"]}})
const cursor = db.collection('inventory').find({ tags: { $all: ['red', 'blank'] } });
$cursor = $db->coll("inventory")->find( { tags => { '$all' => [ "red", "blank" ] } } );
$cursor = $db->inventory->find(['tags' => ['$all' => ['red', 'blank']]]);
cursor = db.inventory.find({"tags": {"$all": ["red", "blank"]}})
client[:inventory].find(tags: { '$all' => ['red', 'blank'] })
findObservable = collection.find(all("tags", "red", "blank"))
To query if the array field contains at least one element with the specified value, use the filter 若要查询数组字段是否至少包含一个具有指定值的元素,请使用筛选器{ <field>: <value> }
where <value>
is the element value.{ <field>: <value> }
,其中<value>
是元素值。
To query if the array field contains at least one element with the specified value, construct a filter using the Eq method:要查询数组字段是否包含至少一个具有指定值的元素,请使用Eq方法构造筛选器:
Builders<BsonDocument>.Filter.Eq(<field>, <value>)
<value>
is the element value to match.
To query if the array field contains at least one element with the specified value, use the filter eq( <field>, <value>)
where value is the element value.
To query if the array field contains at least one element with the specified value, use the filter eq( <field>, <value>)
where <value>
is the element value.
To query if the array field contains at least one element with the specified value, use the filter { <field>: <value> }
where <value>
is the element value.
To query if the array field contains at least one element with the specified value, use the filter 若要查询数组字段是否至少包含一个具有指定值的元素,请使用筛选器{ <field>: <value> }
where <value>
is the element value.{ <field>: <value> }
,其中<value>
是元素值。
To query if the array field contains at least one element with the specified value, use the filter
{ <field> => <value> }
where value is the element value.
To query if the array field contains at least one element with the specified value, use the filter [ <field> => <value> ]
where <value>
is the element value.
To query if the array field contains at least one element with the specified value, use the filter { <field>: <value> }
where <value>
is the element value.
To query if the array field contains at least one element with the specified value, use the filter { <field> => <value> }
where <value>
is the element value.
To query if the array field contains at least one element with the specified value, use the filter equal( <field>, <value> )
where <value>
is the element value.
The following example queries for all documents where 以下示例查询所有文档,其中tags
is an array that contains the string "red"
as one of its elements:tags
是包含字符串"red"
作为其元素之一的数组:
db.inventory.find( { tags: "red" } )
Copy the following filter into the Compass query bar and click Find:将以下筛选器复制到Compass查询栏中,然后单击“查找”:
{ tags: "red" }
var filter = Builders<BsonDocument>.Filter.Eq("tags", "red"); var result = collection.Find(filter).ToList();
cursor, err := coll.Find( context.TODO(), bson.D{ {"tags", "red"}, })
findPublisher = collection.find(eq("tags", "red"));
findIterable = collection.find(eq("tags", "red"));
cursor = db.inventory.find({"tags": "red"})
const cursor = db.collection('inventory').find({ tags: 'red' });
$cursor = $db->coll("inventory")->find( { tags => "red" } );
$cursor = $db->inventory->find(['tags' => 'red']);
cursor = db.inventory.find({"tags": "red"})
client[:inventory].find(tags: 'red')
findObservable = collection.find(equal("tags", "red"))
To specify conditions on the elements in the array field, use query operators in the query filter document:要指定数组字段中元素的条件,请在查询筛选器文档中使用查询运算符:
{ <array field>: { <operator1>: <value1>, ... } }
To specify conditions on the elements in the array field, use query operators in the query filter document:要指定数组字段中元素的条件,请在查询筛选器文档中使用查询运算符:
{ <array field>: { <operator1>: <value1>, ... } }
To specify conditions on the elements in the array field, use query operators in the query filter document. For Example:例如:
var builder = Builders<BsonDocument>.Filter; builder.And(builder.Eq(<array field>, <value1>), builder.Lt(<array field>, <value2>));
To specify conditions on the elements in the array field, use query operators in the query filter document. For Example:例如:
and(gte(<array field>, <value1>), lt(<array field>, <value2>) ...)
To specify conditions on the elements in the array field, use query operators in the query filter document. For Example:例如:
and(gte(<array field>, <value1>), lt(<array field>, <value2>) ...)
To specify conditions on the elements in the array field, use query operators in the query filter document:
{ <array field>: { <operator1>: <value1>, ... } }
To specify conditions on the elements in the array field, use query operators in the query filter document:要指定数组字段中元素的条件,请在查询筛选器文档中使用查询运算符:
{ <array field>: { <operator1>: <value1>, ... } }
To specify conditions on the elements in the array field, use query operators in the query filter document:
{ <array field> => { <operator1> => <value1>, ... } }
To specify conditions on the elements in the array field, use query operators in the query filter document:
[ <array field> => [ <operator1> => <value1>, ... ] ]
To specify conditions on the elements in the array field, use query operators in the query filter document:
{ <array field>: { <operator1>: <value1>, ... } }
To specify conditions on the elements in the array field, use query operators in the query filter document:
{ <array field> => { <operator1> => <value1>, ... } }
To specify conditions on the elements in the array field, use query operators in the query filter document:
and(gte(<array field>, <value1>), lt(<array field>, <value2>) ...)
For example, the following operation queries for all documents where the array 例如,以下操作查询数组dim_cm
contains at least one element whose value is greater than 25
.dim_cm
至少包含一个值大于25
的元素的所有文档。
db.inventory.find( { dim_cm: { $gt: 25 } } )
Copy the following filter into the Compass query bar and click Find:将以下筛选器复制到Compass查询栏中,然后单击“查找”:
{ dim_cm: { $gt: 25 } }
var filter = Builders<BsonDocument>.Filter.Gt("dim_cm", 25); var result = collection.Find(filter).ToList();
cursor, err := coll.Find( context.TODO(), bson.D{ {"dim_cm", bson.D{ {"$gt", 25}, }}, })
findPublisher = collection.find(gt("dim_cm", 25));
findIterable = collection.find(gt("dim_cm", 25));
cursor = db.inventory.find({"dim_cm": {"$gt": 25}})
const cursor = db.collection('inventory').find({ dim_cm: { $gt: 25 } });
$cursor = $db->coll("inventory")->find( { "dim_cm" => { '$gt' => 25 } } );
$cursor = $db->inventory->find(['dim_cm' => ['$gt' => 25]]);
cursor = db.inventory.find({"dim_cm": {"$gt": 25}})
client[:inventory].find(dim_cm: { '$gt' => 25 })
findObservable = collection.find(gt("dim_cm", 25))
When specifying compound conditions on array elements, you can specify the query such that either a single array element meets these condition or any combination of array elements meets the conditions.在数组元素上指定复合条件时,可以指定查询,使单个数组元素满足这些条件,或数组元素的任何组合满足这些条件。
The following example queries for documents where the 以下示例查询文档,其中dim_cm
array contains elements that in some combination satisfy the query conditions; e.g., one element can satisfy the greater than 15
condition and another element can satisfy the less than 20
condition, or a single element can satisfy both:dim_cm
数组包含某些组合满足查询条件的元素;例如,一个元素可以满足大于15
的条件,另一个元素能够满足小于20
的条件,或者单个元素可以满足这两个条件:
db.inventory.find( { dim_cm: { $gt: 15, $lt: 20 } } )
Copy the following filter into the Compass query bar and click Find:将以下筛选器复制到Compass查询栏中,然后单击“查找”:
{ dim_cm: { $gt: 15, $lt: 20 } }
var builder = Builders<BsonDocument>.Filter; var filter = builder.And(builder.Gt("dim_cm", 15), builder.Lt("dim_cm", 20)); var result = collection.Find(filter).ToList();
cursor, err := coll.Find( context.TODO(), bson.D{ {"dim_cm", bson.D{ {"$gt", 15}, {"$lt", 20}, }}, })
findPublisher = collection.find(and(gt("dim_cm", 15), lt("dim_cm", 20)));
findIterable = collection.find(and(gt("dim_cm", 15), lt("dim_cm", 20)));
cursor = db.inventory.find({"dim_cm": {"$gt": 15, "$lt": 20}})
const cursor = db.collection('inventory').find({ dim_cm: { $gt: 15, $lt: 20 } });
$cursor = $db->coll("inventory")->find( { "dim_cm" => { '$gt' => 15, '$lt' => 20 } } );
$cursor = $db->inventory->find([ 'dim_cm' => [ '$gt' => 15, '$lt' => 20, ], ]);
cursor = db.inventory.find({"dim_cm": {"$gt": 15, "$lt": 20}})
client[:inventory].find(dim_cm: { '$gt' => 15, '$lt' => 20 })
findObservable = collection.find(and(gt("dim_cm", 15), lt("dim_cm", 20)))
Use 使用$elemMatch
operator to specify multiple criteria on the elements of an array such that at least one array element satisfies all the specified criteria.$elemMatch
运算符在数组元素上指定多个条件,以便至少有一个数组元素满足所有指定的条件。
The following example queries for documents where the 以下示例查询dim_cm
array contains at least one element that is both greater than ($gt
) 22
and less than ($lt
) 30
:dim_cm
数组包含至少一个大于($gt
)22
且小于($lt
)30
的元素的文档:
db.inventory.find( { dim_cm: { $elemMatch: { $gt: 22, $lt: 30 } } } )
Copy the following filter into the Compass query bar and click Find:将以下筛选器复制到Compass查询栏中,然后单击“查找”:
{ dim_cm: { $elemMatch: { $gt: 22, $lt: 30 } } }
var filter = Builders<BsonDocument>.Filter.ElemMatch<BsonValue>("dim_cm", new BsonDocument { { "$gt", 22 }, { "$lt", 30 } }); var result = collection.Find(filter).ToList();
cursor, err := coll.Find( context.TODO(), bson.D{ {"dim_cm", bson.D{ {"$elemMatch", bson.D{ {"$gt", 22}, {"$lt", 30}, }}, }}, })
findPublisher = collection.find(elemMatch("dim_cm", Document.parse("{ $gt: 22, $lt: 30 }")));
findIterable = collection.find(elemMatch("dim_cm", Document.parse("{ $gt: 22, $lt: 30 }")));
cursor = db.inventory.find({"dim_cm": {"$elemMatch": {"$gt": 22, "$lt": 30}}})
const cursor = db.collection('inventory').find({ dim_cm: { $elemMatch: { $gt: 22, $lt: 30 } } });
$cursor = $db->coll("inventory")->find( { dim_cm => { '$elemMatch' => { '$gt' => 22, '$lt' => 30 } } } );
$cursor = $db->inventory->find([ 'dim_cm' => [ '$elemMatch' => [ '$gt' => 22, '$lt' => 30, ], ], ]);
cursor = db.inventory.find({"dim_cm": {"$elemMatch": {"$gt": 22, "$lt": 30}}})
client[:inventory].find(dim_cm: { '$elemMatch' => { '$gt' => 22, '$lt' => 30 } })
findObservable = collection.find(elemMatch("dim_cm", Document("$gt" -> 22, "$lt" -> 30)))
Using dot notation, you can specify query conditions for an element at a particular index or position of the array. The array uses zero-based indexing.使用点表示法,可以为数组中特定索引或位置的元素指定查询条件。数组使用从零开始的索引。
When querying using dot notation, the field and nested field must be inside quotation marks.使用点表示法查询时,字段和嵌套字段必须在引号内。
The following example queries for all documents where the second element in the array 以下示例查询数组dim_cm
is greater than 25
:dim_cm
中第二个元素大于25
的所有文档:
db.inventory.find( { "dim_cm.1": { $gt: 25 } } )
Copy the following filter into the Compass query bar and click Find:将以下筛选器复制到Compass查询栏中,然后单击“查找”:
{ "dim_cm.1": { $gt: 25 } }
var filter = Builders<BsonDocument>.Filter.Gt("dim_cm.1", 25); var result = collection.Find(filter).ToList();
cursor, err := coll.Find( context.TODO(), bson.D{ {"dim_cm.1", bson.D{ {"$gt", 25}, }}, })
findPublisher = collection.find(elemMatch("dim_cm", Document.parse("{ $gt: 22, $lt: 30 }")));
findIterable = collection.find(gt("dim_cm.1", 25));
cursor = db.inventory.find({"dim_cm.1": {"$gt": 25}})
const cursor = db.collection('inventory').find({ 'dim_cm.1': { $gt: 25 } });
$cursor = $db->coll("inventory")->find( { "dim_cm.1" => { '$gt' => 25 } } );
$cursor = $db->inventory->find(['dim_cm.1' => ['$gt' => 25]]);
cursor = db.inventory.find({"dim_cm.1": {"$gt": 25}})
client[:inventory].find('dim_cm.1' => { '$gt' => 25 })
findObservable = collection.find(gt("dim_cm.1", 25))
Use the 使用$size
operator to query for arrays by number of elements. $size
运算符按元素数查询数组。For example, the following selects documents where the array 例如,下面选择数组tags
has 3 elements.tags
具有3个元素的文档。
db.inventory.find( { "tags": { $size: 3 } } )
Copy the following filter into the Compass query bar and click Find:将以下筛选器复制到Compass查询栏中,然后单击“查找”:
{ "tags": { $size: 3 } }
var filter = Builders<BsonDocument>.Filter.Size("tags", 3); var result = collection.Find(filter).ToList();
cursor, err := coll.Find( context.TODO(), bson.D{ {"tags", bson.D{ {"$size", 3}, }}, })
findPublisher = collection.find(size("tags", 3));
findIterable = collection.find(size("tags", 3));
cursor = db.inventory.find({"tags": {"$size": 3}})
const cursor = db.collection('inventory').find({ tags: { $size: 3 } });
$cursor = $db->coll("inventory")->find( { tags => { '$size' => 3 } } );
$cursor = $db->inventory->find(['tags' => ['$size' => 3]]);
cursor = db.inventory.find({"tags": {"$size": 3}})
client[:inventory].find(tags: { '$size' => 3 })
findObservable = collection.find(size("tags", 3))
For additional query examples, see:有关其他查询示例,请参阅: