从mongodb集合文档sailsjs中删除数组值

时间:2016-10-23 19:58:44

标签: node.js mongodb mongoose sails.js sails-mongo

我在用户集合下有这样的数组 enter image description here

如何使用sails.js代码从此数组中删除单个值

如果删除帖子,我还需要从每个用户文档中删除所有帖子ID,是否有最简单,最快捷的方式从所有文档中删除?

1 个答案:

答案 0 :(得分:0)

如果您使用内置的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