如何删除 mongoose + nodejs + express 中的子文档

How to delete a subdoc in mongoose + nodejs + express

如何删除名为任务的子文档?父架构为 User,子架构名为 Task。

这是我的路线:

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);
      }
    })
  });
})

为什么这不起作用?

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

在此处阅读更多内容: http://docs.mongodb.org/manual/reference/operator/update/pull/#up._S_pull