猫鼬默认日期

时间:2018-01-26 12:16:36

标签: javascript node.js mongodb mongoose timestamp

是否需要设置一个特定的设置才能让mongoose在模型工作下面进行此操作?



// 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
})




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

我试过了: 删除newEntry 代码运行后

所以似乎服务器追逐新的Date并在每个条目上使用它 mongoose文档告诉我,我正在做这件事,以及许多其他帖子。 http://mongoosejs.com/docs/defaults.html

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

1 个答案:

答案 0 :(得分:3)

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

我更新了猫鼬(我不知道这与它有什么关系)

我还删除了: 删除newEntry 所以这似乎是多余的

然而,这次似乎已经有效了



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




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

由于