【发布时间】:2016-10-11 21:12:40
【问题描述】:
我在“gyms”集合中有一个文档,如下所示:
"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"
}
]
}
]
它应该可以通过聚合来实现,但是当我尝试查询时出现以下错误:
$size 的参数必须是数组,但类型为:字符串
查询:
db.gyms.aggregate(
[
{
$project: {
'albums.photos' : {
amountPhotos: { $size: "photos" }
}
}
}
]
)
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework