2017-11-20 4 views
-1

のは、私は次の書類のコレクションを持っているとしましょう:のMongoDBサブクエリ

{ "_id": 1, "book": "aaa", "SeqNumer": "10", "seller": "Tom", ....} 
{ "_id": 2, "book": "bbb", "SeqNumer": "10", "seller": "James", ....} 
{ "_id": 3, "book": "ccc", "SeqNumer": "10", "seller": "Mary", ....} 
{ "_id": 4, "book": "aaa", "SeqNumer": "40", "seller": "James", ....} 
{ "_id": 5, "book": "zzz", "SeqNumer": "40", "seller": "James", ....} 
.... 

すべての書籍を見つけ、その後、特定の書籍(eg.aaa)のすべてのSeqNumersを返すとする集計で検索を()()を使用する方法同じSeqNumbersを持つ。上記のすべてのIDになります:) ありがとう!

答えて

0

フィルタリング部分と$ groupを使用して集計を行うことができます。

db.books.aggregate([ 
    { 
     $match: {"book": "aaa"} 
    }, 
    { 
     $group: { 
      "_id": "$SeqNumer", 
      "ids": { 
       "$push": "$_id" 
      } 
     } 
    } 
]) 
+0

こんにちはmickl、 この回答をお寄せいただきありがとうございますが、結果はIDの配列です。私は本当にすべての一致する行を見たいと思います。 – plska

+0

今、私はあなたを持ってきました、私は残念であり、もう一度あなたに感謝します。 – plska