[英]Filter results of a $lookup
我的查詢正在工作。 但是,我需要使用$ match或類似內容過濾結果。 本地集合具有一個名為“ clinic_id”的字段。 from集合具有一個名為branchId的字段。 我需要確保這些字段被過濾。 基本上只返回branchId為“ 1”且climate_id為“ 1”的結果。
{
$lookup:
{
from: "chatrooms",
localField: "userId",
foreignField: "user.id",
as: "merged"
}
}
我試過使用$ match和$ unwind,但不斷出現錯誤。
查找后,您可以使用$match
在同一查詢中應用條件
{
$lookup:
{
from: "chatrooms",
localField: "userId",
foreignField: "user.id",
as: "merged"
}
},{
$match: {
"merged.branchId" : "1",
"clinic_id" : "1"
}
}
您還可以先檢查本地集合clinic_id
,然后在查找之后檢查branchId :(這將更快地工作,因為查找時間會更少)
{
$match: {
"clinic_id" : "1"
}
},
{
$lookup:
{
from: "chatrooms",
localField: "userId",
foreignField: "user.id",
as: "merged"
}
},
{
$match: {
"merged.branchId" : "1"
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.