【发布时间】:2026-01-12 17:35:01
【问题描述】:
我试图从 MongoDB 中的集合中获取最新的唯一值,但是,$group 似乎以某种方式破坏了 $sort。即,在这种情况下,我试图获取用户的最新活动(但总共只返回 20 个活动)。
db.activities.aggregate([{ $sort: { timestamp:-1, firstname: 1 } }, { $limit: 20 }])
如果我运行上述操作,我会以正确的顺序返回 20 个结果,但是,由于用户提交了多个活动,我有多个名称相同的文档。
如果我运行以下命令,则第一个查询中的*用户不再在列表中。我得到了完全不同的一群人。
db.activities.aggregate([{ $sort: { timestamp:-1, firstname: 1 } }, { $group: { _id: "$firstname"} } , { $limit: 20 }])
如何获取每人最近的活动,但仅限于 20 个活动?
【问题讨论】:
-
按组排序。
标签: mongodb