【发布时间】:2015-10-28 10:27:31
【问题描述】:
我使用的文档如下:
{
"foo" : { "objectid" : "39", "stuff" : "65" },
"yearpublished" : ["1979"],
"bar" : "1263"
}
yearpublished 是一个数组,我想按此数组中的第一个值对我的集合进行分组,然后计算相关文档的数量。
我已经写了这个查询:
db.foobar.aggregate([
{ $group : {
_id : '$yearpublished',
count: { $sum: 1 }
}}
])
然后得到:
{
"result" : [
{ "_id" : ["1923"], "count" : 1.0000000000000000 },
{ "_id" : ["1864"], "count" : 1.0000000000000000 }
]
}
但我正在寻找这种结果(即仅第一个元素):
{
"result" : [
{ "_id" : "1923", "count" : 1.0000000000000000 },
{ "_id" : "1864", "count" : 1.0000000000000000 }
]
}
我也尝试过_id : { $first: '$yearpublished.0' }, 或_id : { $first: '$yearpublished[0]' },,但均未成功。
如何按数组 yearpublished 的第一个元素进行分组?
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework