Mongodb聚合最大值并保持适当的另一个值

时间:2013-12-16 14:50:04

标签: mongodb

我有这样的文档:

{ts: timestamp, X: Y, uid: userid}

我想使用聚合查询做这样的事情:

db.collection.aggregate(
 {'$group':{_id:'$uid',ts =>{'$max':'$ts'},X: maximised_by_ts_field_X}}
)

因此,字段“X”必须包含由字段“ts”最大化的文档的值X。

这可以通过以下方式完成:

db.collection.aggregate(
 {'$sort': {ts : -1}},
 {'$group':{_id:'$uid',ts =>{'$first':'$ts'},X: {'$first':'$X'}}}
)

但它需要额外的n * log(n)操作来排序。 所以我想知道如何在没有排序操作的情况下做到这一点?

0 个答案:

没有答案