在MongoDB中,db.collection.find()与db.collection.find()相同吗?sort({$natural:1})?
我相信这很简单,但我只是想确定一下。具有某种搜索和投影条件的在MongoDB中,db.collection.find()与db.collection.find()相同吗?sort({$natural:1})?,mongodb,sorting,pymongo,Mongodb,Sorting,Pymongo,我相信这很简单,但我只是想确定一下。具有某种搜索和投影条件的find()是否与对其应用排序({$natural:1})相同 另外,默认的自然排序顺序是什么?比如说,它与排序({u id:1})有何不同?db.collection.find()的结果与db.collection.find().sort({$natural:1}) {“$natural”:1}强制查找查询执行表扫描(默认排序),它在排序中使用时指定硬盘顺序 当您更新文档时,mongo可以将您的文档移动到硬盘的另一个位置 例如,按如下
find()
是否与对其应用排序({$natural:1})
相同
另外,默认的自然排序顺序是什么?比如说,它与排序({u id:1})
有何不同?db.collection.find()
的结果与db.collection.find().sort({$natural:1})
{“$natural”:1}
强制查找查询执行表扫描(默认排序),它在排序中使用时指定硬盘顺序
当您更新文档时,mongo可以将您的文档移动到硬盘的另一个位置
例如,按如下所示插入文档
{
_id : 0,
},
{
_id : 1,
}
然后更新:
db.collection.update({ _id : 0} , { $set : { blob : BIG DATA}})
当您执行find查询时,您将得到
{
"_id" : 1
},
{
"_id" : 0,
"blob" : BIG DATA
}
如您所见,文档的顺序已更改=>默认顺序不是按_id如果未指定排序,则mongodb
find()
将按照文档在磁盘上的存储顺序返回文档。磁盘上的文档存储可能与插入顺序一致,但并非总是如此。还值得注意的是,文档在磁盘上的位置可能会更改。例如,在更新的情况下,如果需要,mongodb可以将文档从一个地方移动到另一个地方
对于索引-如果查询使用索引,则默认顺序将是找到索引的顺序
$natural
是在磁盘上查找文档的顺序
建议您明确指定排序,以确保排序顺序。这意味着,如果我对生产设置进行了
find()
查询,然后有一个光标,几天后,我再进行一次find()
并获得另一个光标,在这两个游标中,文档的顺序将不同?当然,假设文档有相当多的更新。如果您更新文档,并且如果更新查询导致移动其中一些文档,那么您将得到不同的结果(顺序不同)。