【发布时间】:2013-07-12 14:24:01
【问题描述】:
我想在 mongo shell 中创建一个新的 ObjectId,但要在过去创建一个 Date,以便模拟过去创建这个文档。这将与 ObjectId 的 getTimestamp() 函数相反(即,给出一个时间戳,获取一个在调用 getTimestamp 时返回该时间戳的 ObjectId)
任何想法如何做到这一点?
【问题讨论】:
标签: javascript mongodb mongo-shell
我想在 mongo shell 中创建一个新的 ObjectId,但要在过去创建一个 Date,以便模拟过去创建这个文档。这将与 ObjectId 的 getTimestamp() 函数相反(即,给出一个时间戳,获取一个在调用 getTimestamp 时返回该时间戳的 ObjectId)
任何想法如何做到这一点?
【问题讨论】:
标签: javascript mongodb mongo-shell
Mongo shell 似乎没有明确支持这一点。但除了一些时区的东西之外,这是可行的:
var timestamp = Math.floor(new Date(1974, 6, 25).getTime() / 1000);
var hex = ('00000000' + timestamp.toString(16)).substr(-8); // zero padding
var objectId = new ObjectId(hex + new ObjectId().str.substring(8));
【讨论】: