1
タイムスタンプ値を上書きしてドキュメントを新規として挿入するmongo objectidを生成したい。だから私は以下のコードを使用してオブジェクトを取得しました。タイムスタンプからユニークなインクリメントを使用してMongo ObjectIdを構築する
var oIdWithTimestamp = function (timestamp) {
// Convert string date to Date object (otherwise assume timestamp is a date)
if (typeof (timestamp) == 'string') {
timestamp = new Date(timestamp);
}
// Convert date object to hex seconds since Unix epoch
var hexSeconds = Math.floor(timestamp/1000).toString(16);
// Create an ObjectId with that hex timestamp
var constructedObjectId = mongoose.Types.ObjectId(hexSeconds + "0000000000000000");
return constructedObjectId
};
しかし、同じタイムスタンプで2つのドキュメントを挿入したい場合は、その必要を満たしていません。私は、オブジェクトIDにインクリメンタ値を追加するために使用されるget_inc関数があることに気付きました。そして、同じタイムスタンプを使用して異なるobjectidを生成することができます。このインクリメンタを使ってユニークなタイムスタンプを得る方法については、16777214までお気軽にお問い合わせください。