2016-08-29 17 views
2

$lookupを実行すると、私のケースではforeignField:"_id"が見つかりました。あなたはfromUsertoUserが配列されているお気づきのように

{ 
    _id : { from : 57b8da368e4a6e1f0043cb3d, to : 57c381af7008e51f009d92df }, 
    fromUser : [ 
     { 
      _id : 57b8da368e4a6e1f0043cb3d, 
      userName: "A" 
     } 
    ], 
    toUser : [ 
     { 
      _id : 57c381af7008e51f009d92df, 
      userName: "B" 
     } 
    ] 
} 

$lookupusersコレクションからfromUsertoUserを取得するために行われた後にここでの出力から一つの文書です。代わりに、彼らはここのように、単にユーザーのuserNameが含まれている配列のようfromUsertoUserを予測する方法:

{ 
    _id : { from : 57b8da368e4a6e1f0043cb3d, to : 57c381af7008e51f009d92df }, 
    fromUser: "A", 
    toUser: "B" 
} 

答えて

5

あなたはこの

// your previous stages incl. lookup 
... 
$project: { 
    fromUser: { $arrayElemAt: ["$fromUser.userName", 0] }, 
    toUser: { $arrayElemAt: ["$toUser.userName", 0] } 
} 
... 
のようなあなたのアグリゲーションパイプラインへ $arrayElemAt演算子を使用して $projectのステージを追加することによって、それを達成することができます
+4

あなたは今日3つのことを教えてくれました。書式設定、ドキュメントの慎重な読み込み、そしてその答えです。ありがとうございました! – Granga

関連する問題