This page provides examples in:本页提供了以下示例:
This page provides examples of query operations on array fields using the 本页提供了使用db.collection.find()
method in the mongo
shell. mongo
shell中的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 pymongo.collection.Collection.find()
method in the PyMongo Python driver. 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 com.mongodb.client.MongoCollection.find method in the MongoDB Java Synchronous Driver.本页提供了使用mongodb Java同步驱动程序中的com.mongodb.client.MongoCollection.find
方法对数组字段执行查询操作的示例。
Tip
The driver provides com.mongodb.client.model.Filters helper methods to facilitate the creation of filter documents. 驱动程序提供com.mongodb.client.model.Filters
帮助程序方法,以方便创建筛选文档。The examples on this page use these methods to create the filter documents.本页上的示例使用这些方法创建筛选文档。
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 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 PHP Library. 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 motor.motor_asyncio.AsyncIOMotorCollection.find()
method in the Motor driver. 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 com.mongodb.reactivestreams.client.MongoCollection.find method in the MongoDB Java Reactive Streams Driver.此页面提供使用mongodb Java反应流驱动程序中的com.mongodb.reactivestreams.client.MongoCollection.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 MongoCollection.Find() method in the MongoDB C# Driver. 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. inventory
集合。To populate the 要填充inventory
collection, run the following:inventory
集合,请运行以下操作:
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. inventory
集合。To populate the 要填充inventory
collection, run the following:inventory
集合,请运行以下操作:
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. inventory
集合。To populate the 要填充inventory
collection, run the following:inventory
集合,请运行以下操作:
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. inventory
集合。To populate the 要填充inventory
collection, run the following:inventory
集合,请运行以下操作:
You can run the operation in the web shell below:您可以在下面的web shell中运行该操作:
For instructions on inserting documents in MongoDB Compass, see Insert Documents.
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, 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 要在数组上指定相等条件,请使用查询文档eq( <field>, <value>)
where <value>
is the exact array to match, including the order of the elements.eq( <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, 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 要在数组上指定相等条件,请使用查询文档eq( <field>, <value>)
where <value>
is the exact array to match, including the order of the elements.eq( <field>, <value>)
,其中<value>
是要匹配的精确数组,包括元素的顺序。
To specify equality condition on an array, construct a filter using the Eq method:
<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"
的数组的所有文档:
Copy the following filter into the Compass query bar and click Find:将以下筛选器复制到Compass查询栏中,然后单击“查找”:
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
运算符:
Copy the following filter into the Compass query bar and click Find:将以下筛选器复制到Compass查询栏中,然后单击“查找”:
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 要查询数组字段是否包含至少一个具有指定值的元素,请使用筛选器eq( <field>, <value>)
where <value>
is the element value.eq( <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.{ <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 若要查询数组字段是否包含至少一个具有指定值的元素,请使用筛选器eq( <field>, <value>)
where value is the element value.eq( <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:
<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
{ <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"
作为其元素之一的数组:
Copy the following filter into the Compass query bar and click Find:将以下筛选器复制到Compass查询栏中,然后单击“查找”:
To specify conditions on the elements in the array field, use query operators in the query filter document:要指定数组字段中元素的条件,请在查询筛选器文档中使用查询运算符:
To specify conditions on the elements in the array field, use query operators in the query filter document:要指定数组字段中元素的条件,请在查询筛选器文档中使用查询运算符:
To specify conditions on the elements in the array field, use query operators in the query filter document:
To specify conditions on the elements in the array field, use query operators in the query filter document. 要指定数组字段中元素的条件,请在查询筛选器文档中使用查询运算符。For example:例如:
To specify conditions on the elements in the array field, use query operators in the query filter document:要指定数组字段中元素的条件,请在查询筛选器文档中使用查询运算符:
To specify conditions on the elements in the array field, use query operators in the query filter document:
To specify conditions on the elements in the array field, use query operators in the query filter document:
To specify conditions on the elements in the array field, use query operators in the query filter document. 要指定数组字段中元素的条件,请在查询筛选器文档中使用查询运算符。For example:例如:
To specify conditions on the elements in the array field, use query operators in the query filter document. For example:例如:
To specify conditions on the elements in the array field, use query operators in the query filter document:
To specify conditions on the elements in the array field, use query operators in the query filter document:
To specify conditions on the elements in the array field, use query operators in the query filter document:
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
的元素的所有文档。
Copy the following filter into the Compass query bar and click Find:将以下筛选器复制到Compass查询栏中,然后单击“查找”:
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
的条件,或者一个元素可以同时满足这两个条件:
Copy the following filter into the Compass query bar and click Find:将以下筛选器复制到Compass查询栏中,然后单击“查找”:
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
的元素的文档:
Copy the following filter into the Compass query bar and click Find:将以下筛选器复制到Compass查询栏中,然后单击“查找”:
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.该数组使用基于零的索引。
Note
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
的所有文档:
Copy the following filter into the Compass query bar and click Find:将以下筛选器复制到Compass查询栏中,然后单击“查找”:
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个元素的文档。
Copy the following filter into the Compass query bar and click Find:将以下筛选器复制到Compass查询栏中,然后单击“查找”:
For additional query examples, see:有关其他查询示例,请参阅: