如何在数据迁移期间使用mongoose设置updatedAt时间戳

时间:2016-09-09 03:46:25

标签: node.js mongoose

我正在从MS SQL到MongoDB进行数据迁移。我正在使用mongoose,在我的架构中,我将timestamp属性设置为true。

{
  timestamps: true
}

然后我尝试设置createdAt和updatedAt字段的值。插入记录时。 createdAt字段正确保存,但updatedAt字段设置为createdAt字段。

这是标准行为还是我做错了什么?

2 个答案:

答案 0 :(得分:1)

时间戳选项真的很酷,毫无疑问,但我仍然在做这件事"旧学校":

'use strict';
/**
 * Module dependencies
 */
const mongoose = require('mongoose');


var DataSchema = new mongoose.Schema({
    name: {
        type: String,
        required: true, 
        lowercase: true
    }, 
    created: {
        type: Date,
        default: Date.now
    },
    updated: {
        type: Date,
        default: Date.now
    }
});

DataSchema.pre('save', function(next) {
    this.updated = Date.now();
    return next();
});

mongoose.model('Data', DataSchema);

答案 1 :(得分:-1)

使用 Mongoose,您可以定义架构,以便自动添加 updatedAt 属性。

    new db.Schema(
      {
        name: String,
      },
      { timestamps: true }
    )