使用陣列的操作

如果要使用陣列中的資料條目,首先需要展開陣列。展開操作為陣列中的每個條目建立一個文件。當你擁有大量陣列的文件時,你會看到文件數量激增。

{ "_id" : 1, "item" : "myItem1", sizes: [ "S", "M", "L"] }
{ "_id" : 2, "item" : "myItem2", sizes: [ "XS", "M", "XL"] }
    
db.inventory.aggregate( [ { $unwind : "$sizes" }] )

一個重要的通知是,當文件不包含陣列時,它將丟失。從 mongo 3.2 及以上版本中新增了一個展開選項 preserveNullAndEmptyArrays。此選項可確保在缺少陣列時保留文件。

{ "_id" : 1, "item" : "myItem1", sizes: [ "S", "M", "L"] }
{ "_id" : 2, "item" : "myItem2", sizes: [ "XS", "M", "XL"] }
{ "_id" : 3, "item" : "myItem3" }
    
db.inventory.aggregate( [ { $unwind : { path: "$sizes", includeArrayIndex: "arrayIndex" } }] )