是否可以使用 Mongo 查询数组中对象的字段中具有特定值的条目。
例如,假设我要查找 field1 具有对象数组的所有对象,其中一个对象的字段“one”的值为 1。此查询应从我的集合中返回以下对象:
{_id: 0000, field1: [{one: 1, two: 2}, {one: 'uno', two: 'dos'}]}
是否可以使用 Mongo 查询数组中对象的字段中具有特定值的条目。
例如,假设我要查找 field1 具有对象数组的所有对象,其中一个对象的字段“one”的值为 1。此查询应从我的集合中返回以下对象:
{_id: 0000, field1: [{one: 1, two: 2}, {one: 'uno', two: 'dos'}]}
我想你需要的是:
db.collection.find( { field1: { $elemMatch: { one: 1 } } } );
http://docs.mongodb.org/manual/reference/operator/elemMatch/#op._S_elemMatch
这是一个老问题,但执行此查询的更简单方法是使用点表示法:
db.collection.find({'field1.one': 1})