【发布时间】:2019-05-18 15:45:22
【问题描述】:
这是我的聚合查询
db.user.aggregate([
{ $addFields: { user_id: { $toString: "$_id" } } },
{
$lookup: {
from: "walletData",
let: { id: "$user_id" },
pipeline: [
{
$match: {
$expr: {
$and: [
{
$eq: ["$userId", "$$id"]
},
{
$gt: ["$lastBalance", 0]
}
]
}
}
}
],
as: "balance"
}
}
])
我从这个结果中得到了想要的输出,但需要在这个查询中加入另一个集合。我怎样才能做到这一点?
例如考虑这些集合:
user : {
"_id": ObjectId("xyz")
}
walletData:{
"userId": "xyz",
"lastBalance": 5
}
AnotherWalletdata:{
"userId": "xyz",
"lastBalance": 6
}
我加入前两个表后得到结果只有当第二个表(walletData)的余额大于零时我如何加入第三个表?
预期输出:
{"id":"xyz",
"walletdataBal":5,
"AnotherWalletDataBal":6
}
【问题讨论】:
-
输出应该是什么?
-
输出应该是这样的 - { id:"xyz" , walletdataBal:5, anotherwalletdataBal:6}。现在我得到它 {id:"xyz", walletdataBal:5, anotherwalletdata:null}
标签: mongodb mongodb-query aggregation-framework