为什么$ pull在节点js上使用mongodb时不起作用

时间:2018-06-04 07:19:57

标签: node.js mongodb pull

我想将元素放入和放出数组

我在用户架构中创建了一个数组,并在每次添加项目时在用户的数组中添加_id

我用$ push

做了这个

我发现mongodb文档中使用了$ pull来从数组中删除

该文件应该与$ push

一样使用

但它没有工作

https://docs.mongodb.com/manual/reference/operator/update/pull/

exports.remove_list = (req, res) => {
const {item_id, user_id} = req.body

const remove_id = () => {
    return User.remove_item_list(user_id, item_id)
}

const respond = () => {
    res.json({
        message: 'remove bucket list successfully'            
    })
}

const onError = (error) => {
    res.status(409).json({
        message: error.message
    })
}

Bucket.deleteOneBy_id(item_id)
.then(remove_id)
.then(respond)
.catch(onError)
}

deleteOneBy_id是_id

删除文档

这是remove_item_list代码

User.statics.remove_item_list= function(user_id, item_id){
return this.update({_id: user_id}, {$pull: {'item_list': item_id}})
}

这是我的架构代码

const User = new user_Schema({
email: {type:String, required:true, unique:true},
password: {type:String, required:true},
item_list:{type:Array}
});

我用来测试的邮递员代码

    {
    "user_id":"5b122609f8d6901c244dfc76",
    "item_id":"5b14dc68cfa0732464334b2f" 
}

以上值是存储在mongodb

中的_id值的副本

我查了几个文件,发现我的$ pull

没有问题

但它没有用,似乎有一个我不知道的问题

如果你知道原因,请告诉我

0 个答案:

没有答案