我正在尝试使用当前日期更新现有文档中的字段。我找到了一个建议使用$ 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()对象与在命令行中调用对象之间的区别。
答案 0 :(得分:0)
在CLI中调用时,日期实例显示为空白。您必须在console.log中显示日期对象以查看其显示的信息。