javascript - 为什么这个 Mongoose 更新不保存到数据库中?
问题描述
我所拥有的是一个函数,可以将新日期添加到“举办的课程”日期数组中。
最初,我有一个从在线示例中复制的非异步函数。它使用了一个简单的 Mongoose 'document.save' 调用,并运行了几天。然后它停止更新数组。
所以我做了一些调试,并认为我可能需要一个异步函数,但这也不起作用。我知道我做错了什么,但我不知道是什么。
这是我的代码,带有 console.logs 以显示该函数在做什么:
this.updateDate = async function () {
try {
let today = this.getFullDate(); // returns a string that I use as a date in the database
await Admin.findOne({'local.className':'2018'}).then(function(course){
console.log('today: '+today);
console.log('course: '+course);
let classesHeld = course.local.classesHeld;
console.log('classesHeld: '+classesHeld);
console.log('index: '+classesHeld.indexOf(today));
if(classesHeld.indexOf(today)=== -1){
classesHeld.push(today);
console.log('added today: '+classesHeld);
Admin.update({'local.className':'2018'},{'local.classesHeld':classesHeld});
console.log('saved it');
}
else{
console.log('Today\'s date already in database.');
}
});
} catch (error) {
console.log('Error in update date: ' + error);
}
}
这是我在控制台中看到的:
today: 7/26/2018
course: { _id: 5b57904b0bed9d3004979604,
__v: 0,
local:
{ className: '2018',
classesHeld:
[ '7/16/2018',
'7/17/2018',
'7/18/2018',
'7/19/2018',
'7/23/2018',
'7/24/2018',
'7/25/2018' ] } }
classesHeld:
7/16/2018,7/17/2018,7/18/2018,7/19/2018,7/23/2018,7/24/2018,7/25/2018
index: -1
added today:
7/16/2018,7/17/2018,7/18/2018,7/19/2018,7/23/2018,
7/24/2018,7/25/2018,7/26/2018 // this is correct
saved it // nope
任何帮助表示赞赏。
解决方案
尝试:
await Admin.update({'local.className':'2018'},{$set{'local.classesHeld':classesHeld}});
代替:
Admin.update({'local.className':'2018'},{'local.classesHeld':classesHeld});
推荐阅读
- google-visualization - 使谷歌图表线条占据整个面积图
- ssl - 在数据包丢失的情况下缓慢的 DTLS 握手
- spring - Spring AOP 以崇高的顺序运行
- extjs - Ext JS Classic 7.1 + Modern 主题:绑定 fieldLabel 和 emptyText 不起作用
- uipath - 在 UiPath Orchestrator 中创建机器人
- react-native - 自定义字体不适用于 React-Native 0.62
- python - AttributeError:“NoneType”对象在 odoo 13 中没有属性“组”
- javascript - 使用服务工作者在后台同时使用缓存*和*更新
- python-3.x - Django SessionWizardView ModelMultipleChoiceField 问题
- angular - Ngrx 数据 - 扩展 DefaultDataService