MongoDB在限制后对结果进行排序

时间:2017-04-18 12:44:45

标签: mongodb sorting limit

有没有办法对从限制返回的文件进行排序? 例如:

-

我想要的是获得10个最后登录的用户,然后按消息计数对它们进行排序。

1 个答案:

答案 0 :(得分:3)

您可以使用

等聚合
db.users.aggregate([
    {"$sort": {"last_online_timestamp":1}},
    {"$limit": 10},
    {"$sort": {"messages_count": 1}}
])

这将经历集合中文档的阶段:

  1. last_online_timestamp字段按升序排序
  2. 仅限10份文件
  3. 这10个文档将按messages_count字段按升序排序
  4. 您可能希望将{"$sort": {"last_online_timestamp":1}更改为{"$sort": {"last_online_timestamp":-1},具体取决于last_online_timestamp的实际值

    有关Mongo聚合的更多信息,请参阅https://docs.mongodb.com/manual/aggregation/