获取Mongo集合主键最小值和最大值的最有效方法

问题描述 投票:0回答:1

我认为收集 myColl 的最高效的方法是:

db.myColl.find().sort( {_id : 1 }).limit( 1 );   // get min
db.myColl.find().sort( {_id : -1 }).limit( 1 );   // get max

有什么方法可以避免 sort() 吗?

mongodb sorting
1个回答
0
投票

MongoDB中的

_id's
是根据时间戳自动生成的ObjectIds,正如文档中提到的,最后3个字节是递增计数的,集合中的文档默认是排序的。因此,要找到最小_id,您可以找到第一个文档,而要找到最大_id,最后插入的文档将具有最大_id。

在其他情况下,如果在您的用例中,在插入时定义 _id,则上述查询是在集合中查找最小和最大 _id 的最有效查询。

致以诚挚的问候 阿萨瓦里

© www.soinside.com 2019 - 2024. All rights reserved.