簡體   English   中英

當localField不存在時,mongodb $ lookup行為

[英]mongodb $lookup behavior when localField is not exsist

我需要幫助來了解一些東西。

我有這個查詢:

db.getCollection('logs').aggregate([{ 
   $match: { 
      $or: [
        { user : 1 },
        { user: 2 }
      ] 
}}, { 
    "$lookup": { 
        "from": 'users', 
        "localField": 'user', 
        "foreignField": 'user_id', 
        "as": 'user_data' 
    } 
}, { 
    "$lookup": { 
        "from": 'roll', 
        "localField": 'user_rol', 
        "foreignField": 'user_id', 
        "as": 'roll' 
    } 
}, { 
     $skip: 0 
}]);

我有3個收藏

logs
roll
users

現在,我有兩種日志

用戶日志

{
"type" : "user_log",
"user" : 1
}

滾動日志

{
"type" : "roll_log",
"user" : 1,
"user_rol" : 1
}

當我查詢一切正常。

我需要了解是否要在user_log上執行第二個$lookup ,它將嘗試查找該文檔,因為在user_log文檔上不存在localField

謝謝。

docs

如果輸入文檔不包含localField,則$ lookup會將字段視為具有null值以進行匹配。

因此,輸出將包含空數組。 在您的情況下,roll將為空數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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