[英]How to add a condition inside $lookup in MongoDb .aggregate()?
[英]how to apply lookup inside mongodb field inside field?
我有Randomhospital命名集合,其中有一個名為醫院的字段,如下所示:
{
"id": "GuDMUPb9gq",
"Hospital Name": "UPHI",
"Hospital City": "Gurgaon"
}
我還有另一個收集清單,其中有一個現場ClinicId 。我想通過將ClinicId與醫院 object Id 匹配來應用查找。
let pipeline=[{
$lookup: {
from: "Randomhospital",
localField: "clinicId",
foreignField: "hospital.id",
as: "hospital_details"
}
}]
let query=await checklist.aggregate(pipeline)
但沒有按預期工作,它會產生空數組? 如果有的話,任何人都可以建議更正代碼嗎?
您正在從checklist
lookup
Randomhospital
。
確保 id 正確。
利用
$lookup: {
from: "Randomhospital",
localField: "clinicId",
foreignField: "id",
as: "hospital_details"
}
似乎您需要使用帶有let和管道檢查文檔的lookup
運算符的另一種變體
您的解決方案可能如下所示:
let pipeline=[{
$lookup: {
from: "Randomhospital",
"let": {"cid": "$clinicId"},
"pipeline": [{
"$match": {
"$expr": {
"$eq": ["$hospital.id", "$$cid"]
}
},
}]
as: "hospital_details"
}
}]
let query=await checklist.aggregate(pipeline)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.