24

是否可以使用 Mongo 查询数组中对象的字段中具有特定值的条目。

例如,假设我要查找 field1 具有对象数组的所有对象,其中一个对象的字段“one”的值为 1。此查询应从我的集合中返回以下对象:

{_id: 0000, field1: [{one: 1, two: 2}, {one: 'uno', two: 'dos'}]}
4

2 回答 2

35

我想你需要的是:

db.collection.find( { field1: { $elemMatch: { one: 1 } } } );

http://docs.mongodb.org/manual/reference/operator/elemMatch/#op._S_elemMatch

于 2013-06-12T21:30:15.520 回答
7

这是一个老问题,但执行此查询的更简单方法是使用点表示法

db.collection.find({'field1.one': 1})
于 2019-07-02T19:59:06.900 回答