无法通过Mongoose.js更新MongoDB中的日期

时间:2016-03-19 23:13:19

标签: node.js mongodb validation date mongoose

我正在尝试使用当前日期更新现有文档中的字段。我找到了一个建议使用$ currentDate的答案。我试过了:

var x = Product.findByIdAndUpdate(
    documentID,
    {$currentDate: {'lastUpdated':true}},
    {new :true},
    function(e,d){x = arguments})

文档返回正常,我所做的其他更改都存在,但日期不会通过。

架构定义为

lastUpdated: {type: Date, default: Date.now},

x.lastUpdated为空(甚至不为空,只是空白); 在尝试$ currentDate方法之前,我还尝试了以下更新对象:

lastUpdated: Date
lastUpdated: Date()
lastUpdated: new Date
lastUpdated: new Date()
lastUpdated: Date.now()
lastUpdated: Date().toISOString()
lastUpdated: new Date().toISOString();

OMG :::所以问题在于返回对象的显示方式。在CLI中调用时,x.lastUpdated返回空白或显示为空白,因为它是一个Date实例(在输入控制台时也返回空行)。但是,console.log(x.lastUpdated)正确打印了日期。我意识到这一点,当我注意到console.log()回调中的数据会正常显示日期,但是在命令行中调用数据对象却没有。检查mongoLab.com上的文档确认日期实际上一直存在。好吧,我的生活还有3个小时......很高兴它得到了解释:)

Edited :::澄清console.log()对象与在命令行中调用对象之间的区别。

1 个答案:

答案 0 :(得分:0)

在CLI中调用时,日期实例显示为空白。您必须在console.log中显示日期对象以查看其显示的信息。