获取MongoDB集合中第一个插入记录的最佳方法



我需要在MongoDB中的集合中获取第一个插入的记录,我目前正在使用以下查询:

db.users.find({}).sort({"created_at":1}).limit(1);

但是,这占用了大量内存。该馆藏有大约 100K 条记录。

做到这一点的有效方法是什么?

MongoDB _id 是唯一标识符,在将文档插入 MongoDB 集合时自动生成

_id字段存储 ObjectId 值并自动编制索引。

根据MongoDB文档,

12 字节 ObjectId 值包括:

4 字节值,表示自 Unix 纪元以来的秒数,

3字节机器标识符,

2 字节进程 ID,以及

3 字节计数器,从随机值开始。

根据上述问题中提到的描述来获取第一个插入的记录,请尝试在MongoDB shell中执行以下mongodb查找操作。

db.users.find({}).sort({"_id":1}).limit(1);

在上面的查询中,我们根据_id字段对结果进行了排序_id因为对象 ID 值由 unix 纪元时间戳组成

此外,

您还可以在查询中添加特定的过滤器,以获取为该条件插入的第一条记录:

就像假设您收集的数据包含用于存储来自 IT、行政、财务部门的员工的数据,并且您想查找为 IT 插入的第一个文档(即第一个 IT 员工(,那么您可以执行:

db.users.find({"Dept" : "IT"}).sort({"_id":1}).limit(1);

同样要找到最后一个员工:

db.users.find({"Dept" : "IT"}).sort({"_id":-1}).limit(1);

注意:对于较大的集合/分片集合,需要相当长的时间才能获得结果,因为它会迭代整个_id字段以达到升序和降序条件。

最新更新