0
下面是我收集的結構部分:
_id: ObjectId("W"),
names: [
{
number: 1,
list: ["A","B","C"]
},
{
number: 2,
list: ["B"]
},
{
number: 3,
list: ["A","C"]
}
...
],
...
我用這個請求:
db.publication.aggregate([ { $match: { _id: ObjectId("54a1de90453d224e80f5fc60") } }, { $group: { _id: "$_id", SizeName: { $first: { $size: { $ifNull: [ "$names", [] ] } } }, names: { $first: "$names" } } } ]);
,但我現在在每一個使用$大小我的文件名稱爲 array。
是否有可能得到這樣的結果(其中「SizeList的」是$大小的結果):
_id: ObjectId("W"),
SizeName: 3,
names: [
{
SizeList: 3,
number: 1,
list: ["A","B","C"]
},
{
SizeList: 1,
number: 2,
list: ["B"]
},
{
SizeList: 2,
number: 3,
list: ["A","C"]
}
...
],
...
您可能不知道操作系統所提及的[**'$ size' **](http://docs.mongodb.org/manual/reference/operator/aggregation/size/)操作符他們的問題是MongoDB 2.6和更高的功能,可以有效地報告數組的大小。因此,不再需要展開數組來計算元素。 –
是的,你的回答很棒,尼爾 - 謝謝 –