2017-09-23 64 views

回答

0

您可以在3.4版本中使用$max$split

$map$arrayElemAt映射來自$split的第二個值。

db.collection_name.aggregate([ 
    { 
    "$project": { 
     "max": { 
     "$max": { 
      "$map": { 
      "input": "$sub_folder", 
      "as": "subf", 
      "in": { 
       "$let": { 
       "vars": { 
        "subfs": { 
        "$split": [ 
         "$$subf", 
         " " 
        ] 
        } 
       }, 
       "in": { 
        "$arrayElemAt": [ 
        "$$subfs", 
        1 
        ] 
       } 
       } 
      } 
      } 
     } 
     } 
    } 
    } 
]) 
+0

我試着用上面的代碼執行,但它沒有給我正確的答案。最大條目爲13,但在輸出中顯示爲9 –

+0

您可以將要測試的示例文檔添加到帖子中嗎? – Veeram

+0

{ 「_id」:的ObjectId( 「59c8d3ee08a93122dc9e105c」), 「項目」: 「文件夾1編輯」, 「sub_folder」:[ 「子文件夾1」, 「子文件夾2」, 「子文件夾3」, 「子文件夾4」, 「子文件夾5」, 「子文件夾6」, 「子文件夾7」, 「子文件夾8」, 「子文件夾9」, 「子文件夾10」, 「子文件夾11」 ], 「__v」:0 } –