ObjectId — MongoDB マニュアルから、mongodb オブジェクト ID の最初の 4 バイトが作成タイムスタンプであることを理解しています。
マングースからその情報を抽出するための十分にサポートされている方法はありますか?
ObjectId — MongoDB マニュアルから、mongodb オブジェクト ID の最初の 4 バイトが作成タイムスタンプであることを理解しています。
マングースからその情報を抽出するための十分にサポートされている方法はありますか?
ObjectId には getTimestamp() メソッドがあると思います。例えば
_id.getTimestamp()
_id を使用して作成タイムスタンプを取得する仮想'created' プロパティを mongoose スキーマに作成できます。追加するだけです:
YourMongooseSchema.virtual('created').get( function () {
if (this["_created"]) return this["_created"];
return this["_created"] = this._id.getTimestamp();
});
これを実行すると、タイムスタンプが取得されます
console.log(new mongoose.Types.ObjectId().getTimestamp() );
例えば。
Fri Nov 16 2012 17:20:14 GMT+0000 (GMT)
これは、誰かがタイムスタンプを日付文字列に変換したい場合に便利です。moment.js ライブラリを使用すると、タイムスタンプから簡単に日付を取得できます。
例
const timestamp = (new mongoose.Types.ObjectId).getTimestamp();
const formatted = moment(timestamp).format('DD MM YYYY, h:mm:ss a');
console.log(formatted); // output => 09 06 2020, 11:26:27 pm
moment.js で日付をフォーマットするその他の方法 https://momentjs.com/docs/#/parsing/string-format/