neo*_*ert 3 sorting limit mongodb
有没有办法对从限制返回的文件进行排序?例子:
//returns 10 documents:
db.users.find()
.sort({last_online_timestamp:-1})
.limit(10)
//returns 10 another documents
db.users.find()
.sort({last_online_timestamp:-1})
.limit(10)
.sort({messages_count:1});
Run Code Online (Sandbox Code Playgroud)
我想要的是获取 10 个最后登录的用户,然后按消息数对它们进行排序。
您可以使用聚合,例如
db.users.aggregate([
{"$sort": {"last_online_timestamp":1}},
{"$limit": 10},
{"$sort": {"messages_count": 1}}
])
Run Code Online (Sandbox Code Playgroud)
这将经历集合中的文档将是:
last_online_timestamp
字段升序排序messages_count
字段升序排序您可能需要改变{"$sort": {"last_online_timestamp":1}
,以{"$sort": {"last_online_timestamp":-1}
根据实际值last_online_timestamp
有关 Mongo 聚合的更多信息,请参阅https://docs.mongodb.com/manual/aggregation/。