1

ネストされたドキュメントを含むコレクションがあります。各ドキュメントには _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を持つドキュメントを返します(ネストされているかどうかに関係なく)。

Ps。この例では、単純にするために「_id」の値を編集しました。

4

1 に答える 1

1

criteria._id を選択する必要があるかもしれませんが (少なくとも、クエリのラッパーを作成する必要はありません)、フィールドのサブセットを取得するだけでドキュメント自体を選択できます。

http://www.mongodb.org/display/DOCS/Retrifying+a+Subset+of+Fields

// The simplest case converted to your use case
db.collection.find( { criterias._id : ObjectId("a_nested_doc") }, { criterias : 1 } );
于 2012-06-12T18:00:00.837 に答える