6

関連するキーなしで、一致するドキュメントID値の配列を返すためにmongodbをクエリすることは可能ですか?

次の「親」データ構造を検討してください。

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

子の名前が「joe」の親_idの配列を照会します

提供されたサンプル データについては、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 に答える