我有这样的文档:
{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)操作来排序。 所以我想知道如何在没有排序操作的情况下做到这一点?