簡體   English   中英

篩選$ lookup的結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM