mackeemackee
mackeemackee

Reputation: 171

Update boolean with Mongoose

I have created an app where i can create a to do list. And i have a status that is false when created. The status i supposed to represent if the object done or not.

My mongoose schema look like this in server.js:

// Create mongoose schema
var issueSchema = mongoose.Schema ({
    issue: String,
    date: String,  
    status: Boolean,    
 });    

 // Create mongoose model
Issue = mongoose.model('Issue', issueSchema);

When i press my button in on my index.html im using angular to send the id trough to the server.js file.

// 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

 });
});

I need help updating the boolean value to true if false or false if true. Or should i skip the boolean value and use something else?

Upvotes: 0

Views: 3150

Answers (2)

Ravi Shankar Bharti
Ravi Shankar Bharti

Reputation: 9268

First, i dont think you should use same variable name outside and inside the function. In this case Issue is same, change it to issue.

And you can try this to update.

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

Upvotes: 1

Tarush Arora
Tarush Arora

Reputation: 576

You can find the issue by id and then save it back to MongoDB after making the changes in success callback.

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

I am not sure about the possibility of toggling boolean field atomically as of now in MongoDB.

Upvotes: 2

Related Questions