因此,我有两个集合User和Book,我希望聚合它们以接收特定用户ID的输出(显示在帖子末尾)。
以下是这些产品系列:
使用者
每个文档包含用户的User ID
、Name
以及包含Book集合中文档ID的数组和布尔属性read
。
[
{
_id: ObjectId('adfa2sd5'),
name: "Mia",
books: [
{
bid: "154854",
read: true
},
{
bid: "5475786",
read: false
}
]
},
{
_id: ObjectId('uai5as5a'),
name: "Jack",
books: [
{
bid: "5475786",
read: true
}
]
}
]
预订
每个文档都拥有一本book ID
和name
的书。
[
{
_id: ObjectId('154854'),
name: "The Great Gatsby"
},
{
_id: ObjectId('5475786'),
name: "Frankenstein"
},
]
输出量:
输出包含User ID
沿着数组book_list
,数组book_list
包含来自 Book 集合的文档的每本书的详细信息(ID、名称),该集合基于来自用户文档的books.bid
和books.bid
的read
字段。
[
{
_id: ObjectId('adfa2sd5'),
book_list: [
{
_id: ObjectId('154854'),
name: "The Great Gatsby",
read: true
},
{
_id: ObjectId('5475786'),
name: "Frankenstein",
read: false
}
]
}
]
1条答案
按热度按时间watbbzwu1#
这里有一个方法可以做到这一点。
在mongoplayground.net上试试。