倚天杖
如果文档中的 _id 字段是由 mongo 自动生成的, 那么本身这个字段就带有时序, 因为 ObjectId 四要素中就有插入时间, query 语句中啥也不写, 其结果就是按时序排序的. 下面语句就可以返回 collection 中的最新 10 条数据:db.collection.find().sort({ _id : -1 }).limit(10)也可以根据 ObjectId 包含创建时间的特性, 通过构造 ObjectId 的办法, 来指定查询某时间段内的文档. 下面的 python 程序可以查询 2018-04-10 日之后插入到 collection 中的文档 (手敲, 亲测有效):#!/usr/bin/pythonimport sysimport datetimefrom pymongo import MongoClientfrom bson import objectidmongo_conn = MongoClient("mongodb://user:pass@11.22.33.44:27017")gen_time = datetime.datetime(2018, 4, 10)dummy_id = objectid.ObjectId.from_datetime(gen_time)cursor = mongo_conn['your_db']['collection'].find( {'_id' : {'$gt' : dummy_id} })for v in cursor: print(v)所以, 你的需求中, 只需要保存 _id 字段即可, 或者保存一个时间戳也可以.另, 如果你的这个 collection 被设置为 Capped Collections, 那么你还可以考虑使用 Tailable Cursors 来时刻获取更新数据. 当然我估计这应该不符合你的使用场景.参考:mongo ObjectIdmongo Tailable Cursorsmongo Capped Collectionspython datetime