21

ObjectId — MongoDB マニュアルから、mongodb オブジェクト ID の最初の 4 バイトが作成タイムスタンプであることを理解しています。

マングースからその情報を抽出するための十分にサポートされている方法はありますか?

4

8 に答える 8

66

ObjectId には getTimestamp() メソッドがあると思います。例えば

_id.getTimestamp()
于 2012-11-12T21:30:10.937 に答える
12

_id を使用して作成タイムスタンプを取得する仮想'created' プロパティを mongoose スキーマに作成できます。追加するだけです:

YourMongooseSchema.virtual('created').get( function () {
  if (this["_created"]) return this["_created"];
  return this["_created"] = this._id.getTimestamp();
});
于 2015-02-11T15:56:35.057 に答える
6

これを実行すると、タイムスタンプが取得されます

console.log(new mongoose.Types.ObjectId().getTimestamp() );

例えば。

Fri Nov 16 2012 17:20:14 GMT+0000 (GMT)
于 2012-11-16T17:20:52.163 に答える
2

これは、誰かがタイムスタンプを日付文字列に変換したい場合に便利です。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/

于 2020-06-09T18:11:17.880 に答える