我正在尝试使用 mongodb 的 ObjectID 对给定集合的插入时间进行范围查询。我真的找不到任何可能的文档,除了这个博客条目: http: //mongotips.com/b/a-few-objectid-tricks/。
我想获取在给定时间戳之后创建的所有文档。使用 nodejs 驱动程序,这就是我所拥有的:
var timeId = ObjectId.createFromTime(timestamp);
var query = {
localUser: userId,
_id: {$gte: timeId}
};
var cursor = collection.find(query).sort({_id: 1});
我总是得到相同数量的记录(27 个集合中的 19 个),与时间戳无关。我注意到 createFromTime 仅填充与时间相关的 objectid 中的字节,其他字节保留为 0(如:4f6198be0000000000000000)。
我尝试为此使用 ObjectID 的原因是,在 mongodb 服务器上插入文档时我需要时间戳,而不是在将文档传递给 node.js 中的 mongodb 驱动程序时需要时间戳。
任何人都知道如何使这项工作,或者有另一个想法如何生成和查询在 mongodb 服务器上生成的插入时间?