3

我想根据几个键订购一个集合。例如:

db.collection.find().sort( { age: -1, score: 1 } );

这一切都很好,花花公子。但是,我想保证年龄第一,分数第二。

在 Javascript 中,不能保证列出对象键的顺序。

MongoDb 官方文档中对 sort 的解释并不十分清楚。

那么......我展示的方式在论证的顺序方面实际上是否可靠?

默克。

4

2 回答 2

3

仅当您的 JavaScript 实现保留对象中键的顺序时,您使用的语法才有效。大多数情况下,大多数时候都这样做,但这取决于您确定。

对于 Nodejs 官方驱动程序,有一种替代形式可以使用Array:

db.collection.find().sort([[age, -1], [score, 1]]);

其他语言的驱动程序可能有类似的东西。

于 2013-07-10T12:13:29.197 回答
0

聚合文档实际上提供了有关该主题的更多信息,其中指出:

db.users.aggregate(
    { $sort : { age : -1, posts: 1 } }
);

此操作对 users 集合中的文档进行排序,按照 age 字段降序排列,然后按照 posts 字段中的值升序排列

这表明 .sort() 方法的功能相同。

于 2013-07-10T12:17:39.513 回答