MongoDB和Mongoose的日期问题

时间:2017-11-03 14:49:23

标签: mongodb mongoose

我正在构建一个使用MongoDb作为数据库并使用MongoDb表示后端的反应应用程序。我的一个模型的属性日期类型为Date。

words

然后,在我的反应应用程序上,我有一个表单,我输入所有这些信息。但是,如果我按照01/11/2017这样的日期,保存的日期是2017年10月31日。我读过的是因为MongoDd以UTC格式存储日期。有没有办法改变这种行为?因为当我尝试按日期搜索时,这个问题也给我带来了问题。快速的方法是将日期存储为字符串,但我希望将它们保留为日期格式。希望有人可以帮忙! 非常感谢!

2 个答案:

答案 0 :(得分:1)

您必须将日期转换为仅日期和时间值 - Date.toISOString() 猫鼬应该能够安全地解释它。但这将是时区独立的,在您的情况下可能会或可能不会。

答案 1 :(得分:0)

我试过你说的话!我使用预保存挂钩来转换日期。



InfoSchema.pre('save', function(next) {
    const info = this;
    console.log(info);
    console.log(info.fecha.toISOString());

    info.fecha = info.fecha.toISOString();

    next();
});




这是控制台中显示的结果:

{ fecha: 2017-11-03T00:00:00.000Z,
  caja: 100,
  bancos: 100,
  cheques: 100,
  debito: { total: 100, vencido: 100, _id: 59fcb3a6a914f71f7c9de9f8 },
  credito: { total: 100, vencido: 100, _id: 59fcb3a6a914f71f7c9de9f7 },
  _id: 59fcb3a6a914f71f7c9de9f6 }

2017-11-03T00:00:00.000Z

但保存在数据库中的结果是2017-11-02 21:00:00.000,再次提前一天。我不明白的方式!