2016-12-01 7 views
0

まず、 私は集計mongodbで別の方法を試しましたが、私が欲しいものを見つけることができません。集計Mongodbと各行データのチェック

私はこのようなコレクションのリストを持っている:start_inとSTART_OUT中関係がある

{'ids' : 1, name : 'john', address : 'New Jerse', start_in : '123', start_out : '111' },  
{'ids' : 3, name : 'john', address : 'New Jerse', start_in : '111', start_out : '456' },  
{'ids' : 5, name : 'john', address : 'New Jerse', start_in : '456', start_out : '987' },  
{'ids' : 6, name : 'john', address : 'New Jerse', start_in : '987', start_out : '878' }, 

{'ids' : 1, name : 'john', address : 'New Jerse', start_in : '123', start_out : '111' },  
{'ids' : 2, name : 'john', address : 'New Jerse', start_in : '523', start_out : '444' },  
{'ids' : 3, name : 'john', address : 'New Jerse', start_in : '111', start_out : '456' },  
{'ids' : 4, name : 'john', address : 'New Jerse', start_in : '124', start_out : '854' },  
{'ids' : 5, name : 'john', address : 'New Jerse', start_in : '456', start_out : '987' },  
{'ids' : 6, name : 'john', address : 'New Jerse', start_in : '987', start_out : '878' }, 
{'ids' : 7, name : 'john', address : 'New Jerse', start_in : '434', start_out : '544' }, 

と集約にMongoDBとを、私はこのような結果リストが欲しいです。

上記のような結果を集計で作成する可能性はありますか? 私はこれを試すのに多くの時間を費やしますが、それでも結果はありません。

+0

これはグラフ探索を達成することができたが、それはモンゴ3.4でのみ利用可能です、あなたは大丈夫ですそれ? – Khang

+0

ありがとうkang、 私はmongo 3.4へのアップデートを持っています。 あなたがそれに答えるまで、私はまだ新しいリリースmongo 3.4があるのか​​分からない。ありがとうございます。 ありがとうございます。 – xibitz

答えて

0

あなたはモンゴ3.4を使用している場合は、この凝集が仕事をする:

db.collectionName.aggregate([ 
    { 
     $match: { 
      ids: 1 
     } 
    }, 
    { 
     $graphLookup: { 
      from: 'collectionName', 
      startWith: '$start_out', 
      connectFromField: 'start_out', 
      connectToField: 'start_in', 
      as: 're' 
     }, 
    }, { 
     $project: { 
      result: { 
       $concatArrays: [[{ 
        _id: '$_id', 
        ids: '$ids', 
        name: '$name', 
        address: '$address', 
        start_in: '$start_in', 
        start_out: '$start_out', 
       }],{ 
        $reverseArray: '$re', 
       }] 
      } 
     } 
    } 
]); 

はREF:https://docs.mongodb.com/manual/reference/operator/aggregation/graphLookup/

+0

ありがとう、 今、私はmongo 3.2を使用しています。 まずはmongoを変更しようとします。 しかし、私はあなたの答えをありがとう。 ありがとうございます。 – xibitz