вложенный объект id не удаляется в mongoose - PullRequest
1 голос
/ 14 июня 2019

Здравствуйте, я пытаюсь удалить push (data) _id из массива документов, но не получаю ответа при выполнении.

Кроме того, поскольку это реляционная _id, которую я пытаюсьудалить.Как я могу удалить из коллекции, в которой она хранится?

вот мой маршрут удаления: -

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 находятся?

1 Ответ

0 голосов
/ 14 июня 2019

Вам нужно найти документ и обновить,

Данные

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

Запрос

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

Результат

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