mongodb:返回一组文档ID

时间:2013-09-27 19:19:39

标签: mongodb mongodb-query

是否可以查询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返回包含适当值的数组

1 个答案:

答案 0 :(得分:15)

应该可以通过

db.coll.distinct("_id", {"children.name": "joe"})