如何从时间戳转换为 Mongo ObjectID

Lê *_* Lễ 6 timestamp mongodb

我知道我们可以使用getTimestamp()从 ObjectId 中检索时间戳,但是有没有办法从时间戳生成 ObjectId?

更具体地说,如果我有的输入,那么我想将其转换为Mongo ObjectID以在 db 中查询,我该怎么做?

小智 11

尝试这个,

> ObjectId("5a682326bf8380e6e6584ba5").getTimestamp()
ISODate("2018-01-24T06:09:42Z")
> ObjectId.fromDate(ISODate("2018-01-24T06:09:42Z"))
ObjectId("5a6823260000000000000000")
Run Code Online (Sandbox Code Playgroud)

从 mongo shell 工作。


Der*_*ill 6

如果将数字传递给 bson ObjectId 构造函数,它会将其作为时间戳并将其传递给生成方法。

您可以根据此答案获取月份和年份的日期(月份从零开始)。

所以:

timestamp = ~~(new Date(2016, 11, 17) / 1000)
new ObjectId(timestamp)
Run Code Online (Sandbox Code Playgroud)