用 Mongoose 更新布尔值

Update boolean with Mongoose

我创建了一个可以创建待办事项列表的应用程序。我的状态在创建时是错误的。如果对象完成或未完成,我应该表示的状态。

我的 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

 });
});

我需要帮助将布尔值更新为 true(如果为 false)或 false(如果为 true)。或者我应该跳过布尔值并使用其他值吗?

可以通过id找到issue,修改成功回调后保存回MongoDB

Issue.findById(id, function(err, issue) {
    issue.status = !issue.status;
    issue.save(function (err) {
        if(err) {
        console.error('ERROR!');
      }
  });
});

到目前为止,我不确定在 MongoDB 中以原子方式切换布尔字段的可能性。

首先,我认为你不应该在函数内外使用相同的变量名。在这种情况下 Issue 相同,将其更改为 issue.

你可以试试这个更新。

Issue.findById(id, function(err, issue) {
    console.log("Object with ID: " + id); // Correct ID
    issue.status = !issue.status;
    issue.save(function(err,result){...});
 });
});