【发布时间】:2023-03-06 16:53:02
【问题描述】:
我想以有效的方式检索大型集合中的最后 20 个文档。
这个 SO post 提供了这个高性能的解决方案 - 但它没有回答我的问题,因为我的问题是专门处理 _id 索引 - :
db.collectionName.find().min(minCriteria).hint(yourIndex).limit(N)
但是,我的集合只包含默认索引 (_id)。我只是不确定最低标准是什么 - 我显然不想硬编码 _id 值,因为该集合会定期清空。
itemsCollection.find().min(<minCriteria>).hint({_id:1}).limit(20)
有没有办法将min 与_id 索引一起使用?还是我唯一的选择是创建一个新索引?
【问题讨论】:
-
您使用的 MongoDB 版本是什么?它是集群(副本集、分片)还是独立的?
-
@prasad_ 三节点副本集
-
docs 说“min() 的存在主要是为了支持 mongos 进程”;那么你的用例是什么?您是否在寻找性能(“我想以有效的方式检索我的大型集合中的最后 20 个文档。”)?您正在寻找什么功能?
-
最高效的方式
-
您能否运行
db.collection.find({}).sort({ _id: -1 }).limit(20).explain("executionStats")并告诉我们您通过executionTimeMillis获得了什么价值
标签: javascript database mongodb sorting