【问题标题】:How to create an ObjectId from a Date value in the mongo shell?如何从 mongo shell 中的 Date 值创建 ObjectId?
【发布时间】:2013-07-12 14:24:01
【问题描述】:

我想在 mongo shell 中创建一个新的 ObjectId,但要在过去创建一个 Date,以便模拟过去创建这个文档。这将与 ObjectId 的 getTimestamp() 函数相反(即,给出一个时间戳,获取一个在调用 getTimestamp 时返回该时间戳的 ObjectId)

任何想法如何做到这一点?

【问题讨论】:

    标签: javascript mongodb mongo-shell


    【解决方案1】:

    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));
    

    【讨论】:

    • 谢谢罗伯特。这样就可以了!
    猜你喜欢
    • 2016-08-28
    • 2011-11-11
    • 2014-11-09
    • 1970-01-01
    • 2020-01-11
    • 2012-11-15
    • 1970-01-01
    • 1970-01-01
    • 2012-03-12
    相关资源
    最近更新 更多