【发布时间】:2020-10-26 20:03:06
【问题描述】:
我有一个板集合、一个列表集合和一个卡片集合。列表数组嵌入在板文档中。我正在尝试获得如下所示的输出:
{
_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 来获得我想要的结果,但我无法让它工作
【问题讨论】:
-
如果你使用
foreignField: "list_id"那么为什么cards数组中没有它? -
哦,这只是示例数据。抱歉,我会解决的
标签: json mongodb has-many embedded-documents nested-documents