MongoDB-2排序级别

MongoDB-2排序级别,mongodb,mongodb-query,Mongodb,Mongodb Query,我有一个聚合查询,我想用两个级别进行排序 我有一个用户集合,其中包含与排序相关的以下字段: 高级(布兰) 上次联机(日期) 我想先按溢价排序,然后再按最后一次在线排序 我认为这是第一种将结果分为两类:高级和非高级。 然后,每个组在其内部按最后的在线排序 因此,结果应该是-按last_online排序的溢价,然后按last_online排序的非溢价 我尝试了{$sort:{premium:-1,last_online:-1},但它并没有给出我想要的结果 如何实现?可以考虑添加索引来检索一致的排序结

我有一个聚合查询,我想用两个级别进行排序

我有一个用户集合,其中包含与排序相关的以下字段: 高级(布兰) 上次联机(日期)

我想先按溢价排序,然后再按最后一次在线排序

我认为这是第一种将结果分为两类:高级和非高级。 然后,每个组在其内部按最后的在线排序

因此,结果应该是-按last_online排序的溢价,然后按last_online排序的非溢价

我尝试了
{$sort:{premium:-1,last_online:-1}
,但它并没有给出我想要的结果


如何实现?

可以考虑添加索引来检索一致的排序结果。

db.collection.createIndex({premium : -1, last_online : -1})

我试图复制你的问题,但似乎效果不错。如果你能分享更多关于当前意外结果的信息,比如现在的样子,那就太好了:)@Ray你例子中的结果是ids 3,4,2,1。它应该是IDS3,1,4,2。(1是premium,premium应该出现在non premium之前)在实践中,您的示例基本上是按最后一个_排序的。如果您注意到,在排序中省略“premium:-1”会返回相同的结果。尽管如此,我还是在添加了索引{premium:-1,last_online:-1}的本地MongoDB中重试了排序聚合,现在似乎得到了一致的结果。你能试试同样的方法看看是否有用吗?:)看起来很有效,我应该在提出这个问题之前做更多的测试。感谢Rayjust回复上述评论:)