节点:从定义的`model`

时间:2017-01-16 19:52:52

标签: node.js mongodb express

我正在尝试更新我的待办事项列表中的位置

var Todo = mongoose.model('Todo', {         
text : String,
done : Boolean
});

database模式有两个elements,我只想更新boolean - 已完成。

      app.put('/api/todos/:todo_id', function(req, res) {
      var query = { _id: req.params.todo_id }; 
            Todo.update(query,
                { done: true
                 }, function(err, todo) {
                    if (err)
                            res.send(err);
                    Todo.find(function(err, todos) {
                            if (err)
                                    res.send(err)
                            res.json(todos);
                    });
            });
    });

我想检查实际值然后更新。完成时间来自mongoose model所以我无法检查它?

if (done != true){
done: true }
 else {
done: false }

这样的事情可能吗?

1 个答案:

答案 0 :(得分:1)

app.put('/api/todos/:todo_id', function(req, res) {
    Todo.findById(req.params.todo_id, function(err, todo) { // get todo by Model.findById
        if (err) return res.send(err);
        todo.done = !todo.done;                             // toggle todo's done field
        todo.save(function(err) {                           // save to database
            if (err) return res.send(err);
            res.json(todo);                                 // return the saved todo
        });
});