mongo $ pull не удаляет строку - PullRequest
       1

mongo $ pull не удаляет строку

0 голосов
/ 05 сентября 2018

Я уверен, что у меня неправильный синтаксис, поэтому, пожалуйста, посмотрите, можете ли вы помочь мне удалить элемент из массива:

BaseUser.findOneAndDelete({
        baseId: req.body.baseId,
        userId: { $eq: req.body.username }
    })
        .then(user => {
            console.log(`Deleted base with ID \`${req.body.id}\``);
            res.status(204);
            return user;
        })
        .then(user => {
            Base.findById(user.baseId)
                .then(base => {
                    base.update({}, { $pull: { users: user._id } });
                    return base.save();
                })
                .then(result => console.log(result));
        })

base выглядит следующим образом:

{ created: 2018-09-05T19:28:06.947Z,
  users: [ 5b902e5448872a1da8b20536, 5b902f079f67030598f5dec0 ],
  messages: [],
  _id: 5b902e5448872a1da8b20535,
  creatorId: 5b7ee54ceb5ab41db89e04c3,
  title: 'testBase1',
  __v: 4 }

user._id соответствует 5b902f079f67030598f5dec0.Я забыл что-то

1 Ответ

0 голосов
/ 06 сентября 2018

ОТВЕТ:

Base.findById(user.baseId)
    .then(base => {
        let indexOf = base.users.indexOf(user._id);
        base.users.splice(indexOf, 1);
        return base.save();
    })

Методы Монго $pull и т. Д. У меня не работают. Вместо этого я нахожу индекс удаленного _id в массиве и удаляю эту запись с помощью ванильного метода JS splice

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...