【发布时间】:2014-07-14 18:04:51
【问题描述】:
给定一组文档,每个文档都有一个数组属性ks:
{
_id: ObjectId('...'),
ks: [4, 3, 2, 1, 3],
v: 45
},
{
_id: ObjectId('...'),
ks: [3, 3, 5],
v: 21
},
{
_id: ObjectId('...'),
ks: [1, 5, 2, 8, 9, 7],
v: 12
}
如何使用key = min ks 或其他折叠函数将此集合聚合到列表中?
[
{
_id: 1,
v: 28.5 // = mean [45, 12]
},
{
_id: 3,
v: 21 // = mean [21]
}
]
使用keyf function 进行分组工作
keyf: function(d) { d.ks.reduce(function(acc, a) { return acc<a ? acc : a; }) }
但是有没有办法通过聚合管道做到这一点?
【问题讨论】:
标签: mongodb mapreduce mongodb-query aggregation-framework