当没有指定排序顺序时,MongoDB如何进行排序记录?

当没有指定排序顺序时,MongoDB如何进行排序记录?

当我们在没有指定任何排序顺序的情况下运行mongofind()查询时,数据库内部使用什么来对结果排序?

根据Mongo网站上的文件:

当执行没有参数的find()时,数据库按自然顺序返回对象。

对于标准表,自然顺序并不特别有用,因为虽然顺序通常接近插入顺序,但不能保证这样做。但是,对于有上限的集合,自然顺序保证是插入顺序。这是非常有用的。

但是,对于标准集合(无上限集合),使用什么字段对结果进行排序?是因为_id田野还是别的什么?

编辑:

基本上,我想得到的是,如果我执行以下搜索查询:

db.collection.find({"x":y}).skip(10000).limit(1000);

在两个不同的时间点:t1T2,我会得到不同的结果集吗:

  1. 当T1和T2之间没有额外的写入时?
  2. 当T1和T2之间有新的写入时?
  3. 在T1和T2之间添加了新的索引?

我在临时数据库上运行了一些测试,得到的结果是相同的()对于这3种情况-但我想确定,而且我确信我的测试用例不是很彻底。


富国沪深
浏览 1149回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MongoDB