Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用Mongoose删除所有子文档时出现问题_Node.js_Mongodb_Express_Mongoose - Fatal编程技术网

Node.js 使用Mongoose删除所有子文档时出现问题

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

我在使用Mongoose从MongoDB文档中删除所有子文档时遇到问题

此代码来自使用Express.js的路由:

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个地址,运行了你的代码,只删除了两个,再次运行代码,删除了最后一个。奇怪的