首页 > 解决方案 > MongoDB - 是否排序保持具有相同价值的文档的顺序?

问题描述

一个相当简单的问题,但我没有要测试的数据库......
如果我对一个值进行排序,我的其他值的顺序会保留吗?

说我的 mongoDB 数据看起来像这样

id, a
0, 1
1, 1
2, 2
3, 2

我对a进行排序,降序。id的顺序会保留吗?像这样?

id, a
2, 2
3, 2
0, 1
1, 1

在相关说明中,我可以像这样将排序相互链接:

cursor.sort([("id",1)]).sort([("a",1)])

这会确保结果按 a 主要排序,然后按 id 排序吗?

谢谢您的帮助

标签: mongodbpymongo

解决方案


该文件指出

结果排序

除非您指定 sort() 方法或使用 $near 运算符,否则 MongoDB 不保证查询结果的顺序。

所以你可以推断,在排序后的字段之后,任何其他字段的顺序也不能得到保证。

从同一个文档中,您还可以看到 sort 函数可以采用多个字段,即

db.orders.find().sort( { "item.category": 1, "item.type": 1 } )

只需几分钟即可下载 mongodb 并设置您自己的数据库进行尝试,试一试!


推荐阅读