嵌套的id对象不会在猫鼬中删除 [英] nested id object not getting deleted in mongoose

查看:104
本文介绍了嵌套的id对象不会在猫鼬中删除的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,我正在尝试从文档数组中删除推送的(数据)_id,但是执行时没有任何响应.

Hello I am trying to delete pushed (data) _id from a document array, but I am getting no response while executing.

此外,由于它是我要删除的关系_id.如何从实际存储的集合中删除?

Also, since it is a relational _id which I am trying to delete. How can I delete from the collection it is actually stored ?

这是我的删除路线:-

router.delete('/userDelete/:userId', checkAuth , (req, res, next) =>{
    if(req.userData.role2 === 'admin') {
        Admin.findOneAndDelete({_id: req.params.userId},{ $pull: { 'admins.users': {_id: req.params._id}}},{new: true}) 
        .exec()
        .then(result => {
            res.status(200).send(["Deleted"]);
        })
        .catch(err =>{
        if (err.code == 500)
                    res.status(500).send(["Didn't get deleted"]);
            else
            return next(err);
        });
    }else{
        res.send(["Unauthorized. Not deleted"]);
    }
});

这是嵌套对象,看起来像:-

{
    "admins": {
        "users": [
            "5d0364048db4957100f33fea" //<===want to delete this relational id
        ],
        "email": "1cf1eede89@himail.online",
        "password": "$2a$10$vHyGxX9P.t0/ybKcmIzkc.ZCX18oHaVnvTgJIWA2gTNzJ3TCdXS4a",
    "_id": "5d0339d5b4b28b6ddff06802",
    "companyName": "GH",
    "__v": 0
}

这是我的控制器:-

var admin = new Admin();
    admin.companyName = req.body.companyName;
    admin.admins = {
                    email : req.body.email,
                    password: req.body.password,
                    users : [] 
    };

是否还可以从每个特定_id数据所在的集合中删除记录?

Is is also possible to delete records from each and every collections where particular _id data is located ?

推荐答案

您需要找到文档并进行更新,

You need to find the Document and update,

数据

{
    "_id" : "5d0339d5b4b28b6ddff06802",
    "admins" : {
        "users" : [
            "5d0364048db4957100f33fea"
        ]
    }
}

查询

db.users.updateOne(
    { _id: req.params.userId },
    {
        $pull: {
            "admins.users": req.params._id
        }
    }
);

结果

{
    "_id" : "5d0339d5b4b28b6ddff06802",
    "admins" : {
        "users" : [ ]
    }
}

这篇关于嵌套的id对象不会在猫鼬中删除的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆