我有一个包含嵌套文档的集合。每个文档也有一个_id字段。
以下是文档结构的示例
{
"_id": ObjectId("top_level_doc"),
"title": "Cadernos",
"parent": "4fd55bbc5d1709793b000008",
"criterias": {
"0": {
"_id": ObjectId("a_nested_doc"),
"value": "caderno",
"operator": "contains",
"field": "design0"
}
}
}
我希望能够通过搜索它的_id
来找到嵌套文档使用此查询
{
"criterias._id" : ObjectId("a_nested_doc")
}
它返回父文档(我只想要嵌套的那个)。
理想情况下我会这样做
{
"_id" : ObjectId("a_nested_doc")
}
它将返回带有该id的文档(无论是嵌套还是非嵌套)。
聚苯乙烯。为了简单起见,我为此示例编辑了“_id”值。
答案 0 :(得分:1)
您可能必须选择criterias._id(至少不在查询周围编写包装),但您可以通过简单地检索字段的子集来选择文档本身。
http://www.mongodb.org/display/DOCS/Retrieving+a+Subset+of+Fields
// The simplest case converted to your use case
db.collection.find( { criterias._id : ObjectId("a_nested_doc") }, { criterias : 1 } );