2

過去にこのドキュメントの作成をシミュレートするために、mongo シェルで新しい ObjectId を作成したいのですが、過去の Date に対して作成します。これは、ObjectId のgetTimestamp()関数の反対になります(つまり、タイムスタンプを指定し、呼び出し時にそのタイムスタンプを返す ObjectId を取得しますgetTimestamp)。

これを行う方法はありますか?

4

1 に答える 1

6

Mongo シェルはこれを明示的にサポートしていないようです。しかし、いくつかのタイムゾーンのものは別として、これは機能します:

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));
于 2013-07-14T18:29:39.660 に答える