0

ボード コレクション、リスト コレクション、カード コレクションがあります。リストの配列がボード ドキュメントに埋め込まれています。次のような出力を取得しようとしています。

{
    _id: 1,
    title: "a board",
    lists: [
      { 
        _id: 1, 
        title: "a list", 
        cards: [ { _id: 1, title: "a card", list_id: 1 }, { _id: 2, title: "another card", list_id: 1 } ] 
      },
      ...
    ]
  }

カードが属するリストにカードをネストしたい。カード ドキュメントにはlist_idフィールドがあります。私はこれを試しました:

db.boards.aggregate([
  { '$match' => { _id: 1 } },
  { '$lookup' => {
    from: "cards",
    localField: "lists._id",
    foreignField: "list_id",
    as: "cards"
  } },
])

しかし、それは次の結果になりました:

{
  _id: 1,
  title: "a board",
  lists: [ {  _id: 1, title: "a list" } ],
  cards: [ { _id: 1, title: "a card", list_id: 1 }, { _id: 2, title: "another card", list_id: 1 } ]
}

必要な結果を得るために使用する必要があることはわかっていますが$unwind、機能させることはできません

4

1 に答える 1