获取每个文档的数组的大小子阵列
问题描述:
我已经收集在一个文件“健身房”看起来像下面这样:获取每个文档的数组的大小子阵列
"name" : "Testing",
"albums" : [
{
"name" : "Aerobics",
"photos" : [
{
"filepath" : "aerobics.jpg"
}
]
},
{
"name" : "Aqua",
"photos" : [
{
"filepath" : "aqua.jpg"
}
]
},
{
"name" : "Zumba",
"photos" : [
{
"filepath" : "zumba.jpg"
}
]
}
],
我想选择的照片数量从每张专辑到投影。
所以我的输出将如下所示:
"name" : "Testing",
"albums" : [
{
"name" : "Aerobics",
"amount_photos" : 1,
"photos" : [
{
"filepath" : "aerobics.jpg"
}
]
},
{
"name" : "Aqua",
"amount_photos" : 1,
"photos" : [
{
"filepath" : "aqua.jpg"
}
]
},
{
"name" : "Zumba",
"amount_photos" : 1,
"photos" : [
{
"filepath" : "zumba.jpg"
}
]
}
]
它应该是具有聚合实现,但我得到以下错误,当我尝试我的查询:
的参数$大小必须是一个数组,但类型的:字符串
查询:
db.gyms.aggregate(
[
{
$project: {
'albums.photos' : {
amountPhotos: { $size: "photos" }
}
}
}
]
)
我以为mongo会有一个更简单的方法来做到这一点,显然不是。谢谢! – Jamie
@Jamie这很简单;) – styvane
更短的方式*像我的查询。 – Jamie