使用Mongo查询数组中对象中的字段?

use*_*679 21 mongodb

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

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

{_id: 0000, field1: [{one: 1, two: 2}, {one: 'uno', two: 'dos'}]}
Run Code Online (Sandbox Code Playgroud)

Luc*_*rin 32

我想你需要的是:

db.collection.find( { field1: { $elemMatch: { one: 1 } } } );
Run Code Online (Sandbox Code Playgroud)

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


Joh*_*yHK 5

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

db.collection.find({'field1.one': 1})
Run Code Online (Sandbox Code Playgroud)