如何使用mongoose从数组中删除元素

时间:2018-03-02 16:45:29

标签: node.js database mongodb express mongoose

我有点卡住了。我正在尝试使用mongoose从数组中删除元素。 我用过:

my_collection.update({
    user: req.query.user
}, {
    $pullAll: { //or $pull
        my_array: array[index] //= "elem1"
    }
});

不幸的是它真的不起作用......

这是我的文件,如果有帮助的话:

{
 "_id":"5a997cde9872f41085391f51",
 "my_array":
     ["elem1",
      "elem2",
      "elem3",
      "elem4"],
 "user":"rodolphe",
 "__v":0
}

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

参见$pullAll,它需要一个数组参数,你传递了一个字符串。

这是我运行代码时遇到的错误: MongoError: $pullAll requires an array argument but was given a string

确保使用.catch()

来控制.log
// mock data
const req = { query: { user: "rodolphe" } }
const array = ["elem1"];
const index = 0;

// update record
Collection.update({
  user: req.query.user
}, {
  $pullAll: { //or $pull
      my_array: [array[index]] // WRAP WITH AN ARRAY
  }
})
  .then(res => console.log(res))
  .catch(err => console.log(err));