Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 每次更新mongoose架构内的日期_Javascript_Reactjs_Mongodb_Express_Mongoose - Fatal编程技术网

Javascript 每次更新mongoose架构内的日期

Javascript 每次更新mongoose架构内的日期,javascript,reactjs,mongodb,express,mongoose,Javascript,Reactjs,Mongodb,Express,Mongoose,每次更新[messageSchema]时,我都会尝试更新lastMessageAt 这样不行。当messageSchema中填充了它的第一个对象时,我指定了唯一生成的日期 我如何解决这个问题 提前谢谢 const chatSchema = new mongoose.Schema({ userName1: String, userName2: String, messages: [messageSchema], lastMessageAt: { type: Date,

每次更新
[messageSchema]
时,我都会尝试更新
lastMessageAt

这样不行。当messageSchema中填充了它的第一个对象时,我指定了唯一生成的日期

我如何解决这个问题

提前谢谢

const chatSchema = new mongoose.Schema({
  userName1: String,
  userName2: String,
  messages: [messageSchema],
  lastMessageAt: {
    type: Date,
    default: Date.now
  }
});

您可以使用mongoospost中间件

chatSchema.post('save', function(next) {
  if (this.isModified('messages')) {
    this.lastMessageAt = Date.now();
  }
  next();
});

发现mongoose现在内置了时间戳,它们的使用方式如下:

const chatSchema = new mongoose.Schema(
  {
    userName1: String,
    userName2: String,
    messages: [messageSchema]
  },
  { timestamps: true }
);

谢谢你的帮助,但我在做这件事时收到了一个不好的请求:-(我刚刚发现猫鼬现在已经内置了时间戳。谢谢你!!:-)