是否可以查询mongodb以返回匹配文档id值的数组,而不使用相关的键?
请考虑关注“父级”数据结构:
{
"_id": ObjectId("52448e4697fb2b775cb5c3a7"),
"name": "Peter",
"children": [
{
"name": "joe"
}
]
},
{
"_id": ObjectId("52448e4697fb2b775cb5c3b6"),
"name": "Marry",
"children": [
{
"name": "joe"
}
]
}
我想查询一个父元素数组,其子元素的名称为“joe”
对于提供的示例数据,我想从mongo返回以下输出:
[ObjectId("52448e4697fb2b775cb5c3a7"), ObjectId("52448e4697fb2b775cb5c3b6")]
我知道我可以查询这样的输出,它也包含键
[{"_id": ObjectId("52448e4697fb2b775cb5c3a7")}, {"_id": ObjectId("52448e4697fb2b775cb5c3b6")}]
但是我需要将上面的数组推送到另一个文档,并进行更新操作,如下所示:
db.statistic.update({"date": today}, {$push: {"children": [ObjectId("52448e4697fb2b775cb5c3a7"), ObjectId("52448e4697fb2b775cb5c3b6")]}}, true, false)
我想避免整理文档结构,以防可以使用mongo返回包含适当值的数组
答案 0 :(得分:15)
应该可以通过
db.coll.distinct("_id", {"children.name": "joe"})