【发布时间】:2018-12-20 20:31:12
【问题描述】:
我正在尝试在对象中写入新版本的日期。 一切都正确输出到控制台,但结果对象根本没有被覆盖。
Aircraft.find({leave: true}, (err, resp) => {
result = resp;
result = result.map((obj) => {
let tmp = new Date(obj.timeArrival);
tmp = moment(obj.timeArrival).format('dddd, MMMM DD YYYY');
console.log(obj.timeArrival); // 2016-05-18T16:00:00.000Z
console.log(tmp); // Wednesday, May 18 2016
obj.timeArrival = tmp;
console.log(obj.timeArrival); // 2016-05-18T16:00:00.000Z
return obj;
})
res.render("departed.hbs", {
us: result
});
})
result 还是老了!
【问题讨论】:
-
console.log(obj.timeArrival);第二个控制台显示循环内的旧值? -
是的,和评论一模一样
-
您是否尝试过将
lean()用作Aircraft.find({ leave: true }).lean().exec(function(err, resp) { ... });? -
我测试了您的代码的改编版本,它按预期工作,将 'Wednesday, May 18 2016' 设置为字符串字段或日期字段。
标签: node.js mongodb date mongoose