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