本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
$zip
Amazon DocumentDB 中的$zip運算子可讓您將多個陣列合併為單一元組陣列 (索引鍵/值對)。當您需要透過合併文件中不同來源或陣列的資料來建立新的文件或物件時,此功能非常有用。
參數
-
inputs:解析為陣列的表達式陣列。這些陣列將合併為單一元組陣列。 -
useLongestLength:(選用) 如果true,輸出陣列的長度將是最長的輸入陣列,以null值填補較短的陣列。如果為false,輸出陣列的長度將是最短的輸入陣列。 -
defaults:(選用) 如果對應的輸入陣列短於最長輸入陣列且useLongestLength為 ,則用於元組的預設值陣列true。
範例 (MongoDB Shell)
下列範例示範如何使用 $zip運算子將兩個陣列合併為單一元組陣列。
建立範例文件
db.grades.insert([ { "_id": 1, "name": "John", "scores": [90, 85, 92], "classes": ["Math", "English", "Science"] }, { "_id": 2, "name": "Jane", "scores": [88, 91, 90, 85], "classes": ["Math", "English", "Science", "History"] } ])
查詢範例
db.grades.aggregate([ { $project: { "name": 1, "scoredClasses": { $zip: { inputs: ["$scores", "$classes"], useLongestLength: true, defaults: [null, null] } } } } ])
輸出
[
{
"_id": 1,
"name": "John",
"scoredClasses": [
[90, "Math"],
[85, "English"],
[92, "Science"],
[null, null]
]
},
{
"_id": 2,
"name": "Jane",
"scoredClasses": [
[88, "Math"],
[91, "English"],
[90, "Science"],
[85, "History"]
]
}
]
程式碼範例
若要檢視使用 $zip命令的程式碼範例,請選擇您要使用的語言標籤: