Удалить значение из массива в FindOneAndUpdate - PullRequest
1 голос
/ 17 июня 2019

Я готов реализовать действие внутри заголовка с помощью mongoose

например, поле документа (массив) выглядит так

likers: ['Jakob', 'Ritchie','John', 'Tommy']

я хочу удалить 'liker' из массива, найденного с этими аргументами

let document = await Model.findOne({id: req.params.id, name: req.params.name})

let unlike = await Model.findOneAndUpdate({id: req.params.id, name:  req.params.name},
/* do something like this document.likers.splice() or something  */)  

как я могу это сделать?

1 Ответ

2 голосов
/ 18 июня 2019

Пока вы правильно определили свою схему, вы можете сделать это через update и $pull следующим образом:

YouModel.updateOne(
   { _id: mongoose.Types.ObjectId(req.params.id) }, 
   { $pull: { 'likers': req.params.name } }
)

С чистым монго это практически то же самое:

db.getCollection('YourColletion').updateOne(
  { _id: ObjectId(req.params.id) }, 
  { $pull: { 'likers': req.params.name } }
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...