我创建了一个可以创建待办事项列表的应用程序。我创建时的状态为false。如果对象完成与否,我应该表示的状态。
我的mongoose架构在 server.js :
中看起来像这样// Create mongoose schema
var issueSchema = mongoose.Schema ({
issue: String,
date: String,
status: Boolean,
});
// Create mongoose model
Issue = mongoose.model('Issue', issueSchema);
当我在我的index.html上按下我的按钮时使用angular将id发送到server.js文件。
// API PUT ========================
app.put('/issueList/:id', function(req, res){
var id = req.params.id;
Issue.findById(id, function(err, Issue) {
console.log("Object with ID: " + id); // Correct ID
// I need code here
});
});
如果为false,我需要帮助将布尔值更新为true,如果为true,则需要将其更新为false。或者我应该跳过布尔值并使用其他东西吗?
答案 0 :(得分:2)
您可以通过id找到问题,然后在成功回调中进行更改后将其保存回MongoDB。
Issue.findById(id, function(err, issue) {
issue.status = !issue.status;
issue.save(function (err) {
if(err) {
console.error('ERROR!');
}
});
});
我不确定是否有可能在MongoDB中原子地切换布尔字段。
答案 1 :(得分:0)
首先,我不认为你应该在函数的内部和内部使用相同的变量名。在这种情况下,issue
相同,请将其更改为Issue.findById(id, function(err, issue) {
console.log("Object with ID: " + id); // Correct ID
issue.status = !issue.status;
issue.save(function(err,result){...});
});
});
。
您可以尝试更新。
{{1}}