如何删除 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
如何删除名为任务的子文档?父架构为 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