我有一个mongodb文件
{
"_id": 10001,
"uid": 1413430,
"loginType": "student"
}
_id是bookId。本书ID是包含isbn编号的" books" 集合中的主键。 "图书" 中的isbn编号是" bookDetails" 集合中的主键。我想使用join(在mongodb中聚合)从上面的文档中获取bookName和author。 "图书" 和" bookDetails" 集合如下:
"书籍"
{
"_id": 10001,
"issued": true,
"isbn": 1177009,
"issuedIds": []
}
" bookDetails"
{
"_id": 1177009,
"quantity": 5,
"available": 5,
"tags": [
"cse",
"ece",
"me",
"ce",
"ee",
"sems 1"
],
"bookIds": [
10001,
10002,
10003,
10004,
10005
],
"bookName": "book 1",
"author": "author 1"
}
我正在使用nodejs和mongodb。
答案 0 :(得分:0)
谢谢大家。 我得到了答案。如果出现问题,请告诉我,因为我得到了所需的输出。
database
.collection('issueCart')
.aggregate([
{
$match: {uid: parseInt(id)}
},
{
$lookup: {
from: "bookDetails",
localField: "_id",
foreignField: "bookIds",
as: "book"
},
},
{
$unwind: "$book"
},
{
$replaceRoot: {
newRoot: {
$mergeObjects: ["$book", "$$ROOT"]
}
}
},
{
$project: {"bookId": "$_id", author: "$author", name: "$bookName", _id: 0}
}
])