2
在这样一个集合:books : [{ stars: 10, valid: true }, { stars: 24, valid: false }, { stars: 76, valid: true }, ...]
,简单计算平均有:如何计算MongoDB Aggregate中集合的前20%的平均值?
db.books.aggregate([
{ $match : {
valid: true
}},
{ $group : {
_id: null,
avg: { $avg: "$stars" } // <- How calculate $avg of top 20%?
}}
])
但是,如果我想的明星,而不是平均所有明星的前20%的平均水平?
PS:没有专门收集(有效期:真)的大小,因为不像我的榜样,我进行了很多$unwind
OBS:
> db.version()
2.4.10
前20%是指?前20%的明星是基于他们的“星级”属性值,或者是“有效”属性为真的集合中前20%的记录? – BatScream 2014-12-02 18:22:59