我有一个包含这样的文档的集合:
{
key : "bla"
list : [
{id:1},
{id:2}
]
}
我如何得到这个对象:{id:1}
?
我尝试了这样的查询:db.myCollection.find({"key":"bla", "list.id":1})
它找到条目,但返回完整的文档而不是只返回{id:1}
我有一个包含这样的文档的集合:
{
key : "bla"
list : [
{id:1},
{id:2}
]
}
我如何得到这个对象:{id:1}
?
我尝试了这样的查询:db.myCollection.find({"key":"bla", "list.id":1})
它找到条目,但返回完整的文档而不是只返回{id:1}
$
运算符是您正在寻找的:
db.test.insert({key: "blah",list :[{id:1},{id:2}]})
db.test.find({'list.id' : 1},{'list.$': 1 })
#Returns:
#{ "_id" : ObjectId("521a78b342abf388fbaacf91"), "list" : [ { "id" : 1 } ] }
db.test.find({'list.id' : 2},{'list.$': 1 })
#Returns:
#{ "_id" : ObjectId("521a78b342abf388fbaacf91"), "list" : [ { "id" : 2 } ] }
如果您不需要文档的 _id,也可以将其排除:
db.test.find({'list.id' : 2},{'list.$': 1 , _id: 0})
#Returns:
#{ "list" : [ { "id" : 2 } ] }