【问题标题】:Mongoose Default Date猫鼬默认日期
【发布时间】:2018-07-05 18:49:49
【问题描述】:

您是否需要设置特定设置才能让猫鼬在下面的模型中正常工作?

// The Model

let theModelSchema = new Schema({
  created_on: {
    // type: Date, // Either Date or Number
    type: Number,
    default: Date.now(), // have also tried Date.now
  },
})

let TheModel = mongoose.model('TheModel', theModelSchema)

// Save first entry

let newEntry = new TheModel({
  value: 'randomValues here'
})

// The default date will be for example 123 here
newEntry.save(function(err, savedNewEntry){
  console.log(savedNewEntry.created_on) // 123
})

// Save second entry a little bit later

newEntry = new TheModel({
  value: 'randomValues here'
})

// The default date should be 125(or whatever)
// But for some reason it stays as 123 and only updates // // when the server restats
newEntry.save(function(err, savedNewEntry){
  console.log(savedNewEntry.created_on) // still 123, should be different
})

当我第一次运行它时它对我有用,但它会保存另一个条目,它不会更新新条目中的时间,它会保留旧时间,只要相同的服务器实例正在运行。

我尝试过: 删除新条目 代码运行后

因此,服务器似乎对新日期进行了查询并在每个条目上使用它 猫鼬文档告诉我我做得对,以及许多其他帖子。 http://mongoosejs.com/docs/defaults.html

那么我在这里做错了什么? 我当然知道很多变通方法,但是您希望您的模型能够自动化。 非常感谢您的帮助,在此先感谢!

【问题讨论】:

  • 它不会更新同一个文档,它会使用新的日期创建新的文档。

标签: javascript node.js mongodb mongoose timestamp


【解决方案1】:

好吧,回答你自己的问题有点蹩脚......这很奇怪,但它现在开始工作了。

我更新了猫鼬(我不知道这是否与它有关)

我还删除了: 删除新条目 所以这似乎只是多余的

不过,这一次似乎奏效了

created_on: {
  type: Number,
  // Changing Date.now() to Date.now did the trick this time around
  default: Date.now, 
},

所以我只将 Date.now() 更改为 Date.now,顺便说一下,我之前已经尝试过……所以也许 mongoose 更新有所作为? 如果有人知道为什么会这样,请告诉我。

谢谢

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2012-02-17
  • 2018-06-03
  • 2013-05-15
  • 2016-10-01
  • 1970-01-01
  • 2018-10-02
  • 2022-07-29
  • 2017-03-12
相关资源
最近更新 更多