我想根据几个键订购一个集合。例如:
db.collection.find().sort( { age: -1, score: 1 } );
这一切都很好,花花公子。但是,我想保证年龄第一,分数第二。
MongoDb 官方文档中对 sort 的解释并不十分清楚。
那么......我展示的方式在论证的顺序方面实际上是否可靠?
默克。
我想根据几个键订购一个集合。例如:
db.collection.find().sort( { age: -1, score: 1 } );
这一切都很好,花花公子。但是,我想保证年龄第一,分数第二。
MongoDb 官方文档中对 sort 的解释并不十分清楚。
那么......我展示的方式在论证的顺序方面实际上是否可靠?
默克。
仅当您的 JavaScript 实现保留对象中键的顺序时,您使用的语法才有效。大多数情况下,大多数时候都这样做,但这取决于您确定。
对于 Nodejs 官方驱动程序,有一种替代形式可以使用Array
:
db.collection.find().sort([[age, -1], [score, 1]]);
其他语言的驱动程序可能有类似的东西。
聚合文档实际上提供了有关该主题的更多信息,其中指出:
db.users.aggregate(
{ $sort : { age : -1, posts: 1 } }
);
此操作对 users 集合中的文档进行排序,按照 age 字段降序排列,然后按照 posts 字段中的值升序排列
这表明 .sort() 方法的功能相同。