javascript - MongoDB 对象未更新
问题描述
我正在使用 MongoDB 开发数据库系统。我正在尝试保存当前日期和时间,然后如果身份证上的相同条形码被扫描两次、三次等,则更新它……但是,$set 不会更新该项目。我已经查看了 MongoDB 文档和其他 Stack Overflow 帖子,但似乎没有任何效果。其他 Stack Overflow 帖子建议添加
{ new: true }
和
( overwrite: true }
我分别尝试了这些,但两者都没有奏效。
我的代码:
Student.findOne({StudNum: studNum}, function(err, studNumItem) {
if (err) {
res.send("MongoDB Error: " + err);
return false;
}
if (!studNumItem) {
var myData = new Student({ StudNum: studNum, Attendance : 1, LastDateTimeAttended : {
Year: year, Month: month, Day: day, Hours: hours, Min: min, Sec: sec
}});
myData.save()
.then(item => {
res.send("saved to database: " + studNum + ", with attendance " + Attendance + "");
})
.catch(err => {
res.send("unable to save to database: " + studNum + ", for attendance " + Attendance + "");
});
}
else{
var conditions = {StudNum: studNum};
var update = {$inc : { Attendance: 1 }, $set : {
"Year": year, "Month": month, "Day": day, "Hours": hours, "Min": min, "Sec": sec
}};
Student.findOneAndUpdate(conditions, update, { new: true }, function (err)
{
if (err) // If error
{
res.send(err);
}
else {
res.send("Checked in!")
}
});
}
});
我的架构:
var studentSchema = mongoose.Schema({
StudNum: String,
Attendance: Number,
LastDateTimeAttended: {
Year: Number,
Month: Number,
Day: Number,
Hours: Number,
Min: Number,
Sec: Number
}
});
提前致谢!
编辑:只是为了澄清,保存项目工作正常,但更新项目不会,更新时也不会引发错误。
解决方案
对于那些不知道问题原因的人,也可能是未在方案中声明变量,导致任何更改被暂停和忽略。
推荐阅读
- python - 从 Django API 中的 PostgreSQL 过程/函数获取错误输出
- python - 在 djnago 中为 M2M 对象设置字段值
- google-chrome - Google Lighthouse 如何将我的网站明确标记为不是 PWA
- node.js - 在 Gulp 中运行异步任务的问题
- html - 如何使用 HTML 和 CSS 正确格式化和分割图像以位于文本的右侧
- pascal - 在 Pascal 中创建一个类
- typescript - 通过 webpack 将 yaml 导入打字稿
- javascript - JS - 如何更改箭头键在文本中移动光标的方式
- asp.net-mvc - 如何在MVC中使用if条件更改html标签数据
- node.js - 如何在 nodejs 中获取动态 url?(人栈)