AggregateCommand.zip(value: any): Object
聚合操作符。把二维数组的第二维数组中的相同序号的元素分别拼装成一个新的数组进而组装成一个新的二维数组。如可将 转换成 [ [ 1, "a" ], [ 2, "b" ], [ 3, "c" ] ]
。
Object
语法如下:
useLongestLength
决定输出数组的长度是否采用输入数组中的最长数组的长度。默认为 false
,即输入数组中的最短的数组的长度即是输出数组的各个元素的长度。
defaults
是一个数组,用于指定在输入数组长度不一的情况下时采用的数组各元素默认值。指定这个字段则必须指定 ,否则返回错误。如果 useLongestLength
是 true
但是 defaults
是空或没有指定,则 zip
用 null
做数组元素的缺省默认值。指定各元素默认值时 defaults
数组的长度必须是输入数组最大的长度。
{ "_id": 1, "zip1": [1, 2], "zip2": [3, 4], "zip3": [5, 6] ] }
{ "_id": 2, "zip1": [1, 2], "zip2": [3], "zip3": [4, 5, 6] ] }
{ "_id": 3, "zip1": [1, 2], "zip2": [3] ] }
只传 inputs
返回结果如下:
{ "_id": 3, "zip": null }
设置 useLongestLength
如果设 useLongestLength
为 true
:
{ "_id": 1, "zip": [ [1, 3, 5], [2, 4, 6] ] }
{ "_id": 2, "zip": [ [1, 3, 4], [2, null, 5], [null, null, 6] ] }
{ "_id": 3, "zip": null }
设置 defaults
返回结果如下:
{ "_id": 1, "zip": [ [1, 3, 5], [2, 4, 6] ] }
{ "_id": 2, "zip": [ [1, 3, 4], [2, -200, 5], [-300, -200, 6] ] }