【发布时间】:2021-08-25 11:56:36
【问题描述】:
我正在尝试通过查找从另一个集合中获取数据
集合“用户”
{
"_id":{
"$oid":"60bf4bb31f45d98903d1851f"
},
"name":"Dave",
"center":"THGJ556",
}
集合“地址”
{
"_id":{
"$oid":"60bf4bb31f45d98903d1851f"
},
"userId":"60bf4bb31f45d98903d1851f",
}
集合“应用程序”
{
"_id":{
"$oid":"60bf4bb31f45d98903d1851f"
},
"userId":"60bf4bb31f45d98903d1851f",
"centerId":"THGJ556",
},
{
"_id":{
"$oid":"60bf4bb31f45d98903d3647j"
},
"userId":"60bf4bb31f45d98903d1851f",
"centerId":"JHGJ5476",
}
现在我需要所有表中的数据。
这是我的代码:
users.aggregate([
{
$lookup: {
from: "addresses",
localField: "_id",
foreignField: "userId",
as: "addressData"
}
},
{
$lookup: {
from: "applications",
pipeline: [
{ $match:
{ userId:"$_id", centerId: "JHGJ5476"}
},
],
as: "applicationData"
}
},
] ,function(err, result) {
if (err) {
console.log(err)
} else {
console.log(result)
}
});
我在管道中使用聚合和匹配时做错了。
我正确获取了 addressData,但我在 applicationData 中什么也没得到 [],因为我怀疑 userId:"$_id" 有问题
【问题讨论】:
标签: node.js typescript mongodb mongoose