6

是否可以在没有相关键的情况下查询 mongodb 以返回匹配文档 id 值的数组?

请考虑以下“父”数据结构:

{
  "_id": ObjectId("52448e4697fb2b775cb5c3a7"),
  "name": "Peter",
  "children": [
    {
      "name": "joe"
    }
  ]
},
{
  "_id": ObjectId("52448e4697fb2b775cb5c3b6"),
  "name": "Marry",
  "children": [
    {
      "name": "joe"
    }
  ]
}

我想查询一个父 _id 数组,其子名称为“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 返回一个包含适当值的数组

4

1 回答 1

17

应该可以通过

db.coll.distinct("_id", {"children.name": "joe"})
于 2013-09-27T19:26:34.693 回答