Node.js 使用Mongoose删除所有子文档时出现问题
我在使用Mongoose从MongoDB文档中删除所有子文档时遇到问题 此代码来自使用Express.js的路由:Node.js 使用Mongoose删除所有子文档时出现问题,node.js,mongodb,express,mongoose,Node.js,Mongodb,Express,Mongoose,我在使用Mongoose从MongoDB文档中删除所有子文档时遇到问题 此代码来自使用Express.js的路由: router.delete('/all', (req, res) => { Customers.update( {_id: req['customer']}, {$pull: {addresses: {_id: {$exists: true}}}}, {safe: true}, (err, address
router.delete('/all', (req, res) => {
Customers.update(
{_id: req['customer']},
{$pull: {addresses: {_id: {$exists: true}}}},
{safe: true},
(err, address) => { res.json(address); }
);
});
这就是我正在尝试的,但什么都没有发生。我还尝试使用其他代码,即:
router.delete('/all', (req, res) => {
let customer = req['customer'];
customer.addresses.forEach((doc, index) => {
let address = customer.addresses[index];
customer.addresses.remove(address._id);
customer.save();
});
res.json({ok: 1});
});
但是这段代码只删除了一些子文档,而不是全部,我不知道为什么。如果要从数组中删除所有内容,难道不能将其设置为[],而不是使用$pull吗?例如,
{$set:{addresses:[]}
我有3个地址,运行了你的代码,只删除了两个,再次运行代码,删除了最后一个。奇怪的