1. ホーム
  2. node.js

[解決済み】mongooseスキーマにcreated_atとupdated_atフィールドを追加する

2022-04-06 17:34:25

質問

作成されたatと updated_at フィールドを mongoose スキーマに追加します。 MyModel() が呼び出されるのですか?

created_at フィールドは日付で、ドキュメントが作成されたときにのみ追加されます。 このフィールドは updated_at フィールドが新しい日付で更新されるたびに save() がドキュメント上で呼び出されます。

私のスキーマで試してみましたが、明示的に追加しない限りフィールドは表示されません。

var ItemSchema = new Schema({
    name    : { type: String, required: true, trim: true },
    created_at    : { type: Date, required: true, default: Date.now }
});

解決方法は?

Mongoose 4.0 からはスキーマにタイムスタンプのオプションを設定することで、Mongoose にこの処理をさせることができるようになりました。

var thingSchema = new Schema({..}, { timestamps: true });

このように使用するフィールドの名前を変更することができます。

var thingSchema = new Schema({..}, { timestamps: { createdAt: 'created_at' } });

http://mongoosejs.com/docs/guide.html#timestamps