Удалить значение массива из документа коллекции mongodb, sails sjs

#node.js #mongodb #mongoose #sails.js #sails-mongo

#node.js #mongodb #mongoose #sails.js #sails-mongo

Вопрос:

У меня есть такой массив в разделе «Коллекция пользователей» введите описание изображения здесь

Как я могу удалить одно значение из этого массива с помощью sails.js код

также мне нужно удалить все идентификаторы записей из каждого пользовательского документа, если запись удалена, есть ли какой-либо самый простой и быстрый способ удаления из всех документов??

Комментарии:

1. Не могли бы вы вставить код ur models? Сообщение , пользователь… все, что вы используете в этой операции?

Ответ №1:

Есть несколько простых способов сделать это, если вы используете встроенный ORM «Waterline», и они в основном эквивалентны.

Первый — запустить Model.update() и перезаписать массив новым значением.

 Model.update(id, { likes : [/* new array value */] }).then(...)
  

Другой способ заключается в том, чтобы 1) найти объект 2) извлечь значение из массива 3) сохранить:

 Model.findOne(id, function(err, document){
  if(err) // handle err case
  else {
    document.likes = document.likes.filter(value => value !== 'stringToRemove')
    document.save(function(err, saved){
      ... // do more stuff
    })
  }
})
  

Наконец, если вы не используете его для очень простого приложения, я не могу рекомендовать использовать Waterline ORM с MongoDB. Избавьте себя от кучи головной боли и используйте Mongoose.