【发布时间】:2018-02-07 00:48:40
【问题描述】:
我需要计算其他集合中的引用文档,比如我有以下场景:
书籍:
{
id: "123",
name: "Alpha"
}, {
id: "124",
name: "Beta"
}, {
id: "125",
name: "Gamma"
}
用户:
{
id: "234",
name: "user 1"
fav_books: ["123", "124"]
}, {
id: "235",
name: "user 1"
fav_books: ["123", "124", "125"]
}, {
id: "236",
name: "user 1"
fav_books: ["123", "125"]
},
我需要计算所有用户集合中的每本书的数量,就像上面的场景应该输出:
{
"123": "3",
"124": "2",
"125": "2"
}
【问题讨论】:
-
试试
db.Books.aggregate( [{ $lookup: { from: "Users", localField: "id", foreignField: "fav_books", as: "bookscount" } }, { $project: { "id":1, "bookscount": { $size: "$bookscount" } } }] ) -
@SirajulHaq 我的回答有帮助吗?