【发布时间】:2015-11-24 10:12:22
【问题描述】:
我的文档结构如下:
[
{
series_id: 0,
books: [
{
book_id: 0,
scores: [
{
critic_id: 0,
score : 7.5
},
{
critic_id: 1,
score : 8.5
},
{
critic_id: 2,
score : 2.5
}
]
},
{
book_id: 1,
scores: [
{
critic_id: 0,
score : 5.5
},
{
critic_id: 1,
score : 7.5
},
{
critic_id: 2,
score : 9.5
}
]
}
]
},
...
]
现在,我想在给定评论家 ID 列表(最好是有序的)的情况下,找到每本书平均得分最高的系列。
因此,例如,我想找到评论家得分最高的系列 [0,2]。这应该返回:
[
{
series_id: 0,
score: 12.5
},
...
]
或者只是一个序列号的有序列表:
[ 0, ... ]
因为评论家 0 和 2 的 book_0 的平均值是 5,而评论家 0 和 2 的 book_1 的平均值是 7.5。总和这是 12.5
现在我被困在:
return list(db['series']).find(sort=[("series.books.scores", 1)])
【问题讨论】:
标签: python mongodb mongodb-query pymongo aggregation-framework