0

如何删除名为任务的子文档?父架构是用户,子架构名为任务。

这是我的路线:

app.delete('/api/tasks/:id', isAuthenticated, function (req, res) {

  User.update({ 'task._id': req.params.id }, { $pull: { 'task.$.id': req.params.id }},
    (function(err, user) {
        if(!err) {
          console.log("Deleted Task" ),
          res.redirect('/home');
        } 
    })
  );
});

还有一点ajax:

// Delete 
$(document).ready(function() {

  $('.task-delete').click(function(event) {
    $target = $(event.target)
    $.ajax({
      type: 'DELETE',
      url: apiDeleteTask + $target.attr('data-task-id'),
      success: function(response) {
        $target.parent.children.id(id).remove();
        $alert.trigger('success', 'Task was removed.');
      },
      error: function(error) {
        $alert.trigger('error', error);
      }
    })
  });
})

为什么这不起作用?

4

1 回答 1

2

$pull 运算符在这里不起作用,因为它仅适用于数组,并且“task._id”不是数组,而是数组中的字段。

在这里阅读更多:http: //docs.mongodb.org/manual/reference/operator/update/pull/#up._S_pull

于 2015-01-31T01:49:07.057 回答