基本问题。 mongodb find命令是否总是按照添加到集合中的顺序返回文档?如果没有如何以正确的顺序实现选择文档? 分类?但是,如果同时添加的文档和说创建日期的文档是相同的,但仍然有订单。
答案 0 :(得分:2)
嗯,是的,......不完全是。 文档默认按自然顺序排序。这最初是文档存储在磁盘上的顺序,这实际上是文档添加到集合的顺序。 然而,该顺序不是确定性的,因为一旦这些文档在更新操作之后增长,文档可能在磁盘上移动,并且不再适合当前空间。这样初始(插入)顺序可能会改变。
只要_id是ObjectId类型,保证插入顺序排序的方法就是按 {_ id:1} 排序。这将返回按升序排序的文档。
写入操作不会同时进行。写入锁定在数据库级别(V 2.4及更高版本)中强加。 _id的前四个字节是插入时间戳,最后3个数字是一个随机计数器,用于区分(和排序)具有相同时间戳的ObjectId实例。
_id字段默认为索引