Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从mongo shell中的日期值创建ObjectId?_Javascript_Mongodb_Mongo Shell - Fatal编程技术网

Javascript 如何从mongo shell中的日期值创建ObjectId?

Javascript 如何从mongo shell中的日期值创建ObjectId?,javascript,mongodb,mongo-shell,Javascript,Mongodb,Mongo Shell,我想在mongo shell中创建一个新的ObjectId,但日期是过去的,以便模拟过去创建此文档的过程。这与ObjectId的函数相反(即,给定一个时间戳,获取一个ObjectId,在调用它时返回该时间戳) 有没有办法做到这一点?Mongo shell似乎并不明确支持这一点。但除了一些时区的东西,这是有效的: var timestamp = Math.floor(new Date(1974, 6, 25).getTime() / 1000); var hex = ('0000000

我想在mongo shell中创建一个新的ObjectId,但日期是过去的,以便模拟过去创建此文档的过程。这与ObjectId的函数相反(即,给定一个时间戳,获取一个ObjectId,在调用它时返回该时间戳)


有没有办法做到这一点?

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

谢谢你,罗伯特。那就行了!