我有点卡住了。我正在尝试使用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
}
感谢您的帮助!
答案 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));