我正在使用聚合连接,如下所示:
db.users.aggregate([{$lookup:
{
from: "userinfo",
localField: "userId",
foreignField: "userId",
as: "userres" }
}], function (err, info)
{
res.json(info);
}
);
在上面的代码中,我可以为二次收集添加另一个条件吗? 如果可能,请告诉我。
答案 0 :(得分:0)
不幸的是,$ lookup匹配仅在源和外部集合中使用一个字段。 如果你真的需要更复杂的WHERE子句 - 那么解决方案就是在两个集合中添加一个额外的计算字段,以便根据需要精确匹配查找。
答案 1 :(得分:0)
实际上我并不是想要匹配两个系列。我正在寻找与二次收藏相匹配的领域。我会清楚地解释我的问题:
这是我的主要收藏品“bags”。其中包含
{
"_id" : ObjectId("568f43e08a9f71b70b22a694"),
"bagNo" : "HBBN/00001/16",
"category" : "Voluntary",
"regNo" : "DNR/00001/16",
"status": "Accepted"
},
{ “_id”:ObjectId(“568f4645fa0758af0e3fef26”), “bagNo”:“HBBN / 00002/16”, “类别”:“自愿”, “regNo”:“DNR / 00002/16”, “状态”:“被拒绝” },
{ “_id”:ObjectId(“568f4645fa4546gygfef26”), “bagNo”:“HBBN / 00003/16”, “类别”:“自愿”, “regNo”:“DNR / 00003/16”, “身份”:“接受” }
现在我的加入集合“捐赠者”包含
{"donorType" : "H",
"regNo" : "DNR/00001/16",
"surName" : "pandey",
"firstName" : "rakesh"},
{“donorType”:“C”, “regNo”:“DNR / 00002/16”, “surName”:“pandey”, “firstName”:“rakesh”},
{“donorType”:“C”, “regNo”:“DNR / 00003/16”, “surName”:“pandey”, “firstName”:“rakesh”}
从这两个系列我想从袋子收集中获得已接受的袋子数据,在捐赠者收藏中将'donortype'作为'H'。如果有可能,请告诉我。解释一些例子