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