首页 > 解决方案 > Mongodb从数组中删除对象

问题描述

我正在尝试根据对象的名称(Ticker)从数组中删除对象。其他人也问过这个问题,我尝试了他们的许多解决方案,但我就是无法让它发挥作用。它实际上从不执行删除任何内容的任务。

这是我的架构:

{
    _id : 1234 
    email : me@me.com 
    pass : password  
    stock : [ 
        {
        Ticker : TSLA 
        Market : Nasdaq 
        Notes : [ 
            "Buy at 700", 
            "Sell at 1000"
            ] 
        },
        {
        Ticker : AAPL 
        Market : Nasdaq 
        Notes : [ 
            "Buy at 110", 
            "Sell at 140"
            ] 
        },
    
    ]
}

这是我目前拥有的,但我也尝试了其他一些命令组合:

router.post(`/watchlist/remove/:email/:pass/:stock`, (req, res) => {
    var email = req.params.email
    var pass = req.params.pass
    var tempStock = req.params.stock


    userModel.findOneAndUpdate({ email: email  }, { $pull : {'stock.Ticker' : tempStock} }   , (documents, err) => {
        if (err) {
            res.send(err);
        }
        else {
            res.send(documents)
        }
    })
})

标签: node.jsmongodb

解决方案


我认为这可能会有所帮助

userModel.findOneAndUpdate({ email: email  }, { $pull:{stock:{Ticker : tempStock}}}, (documents, err) => {
        if (err) {
            res.send(err);
        }
        else {
            res.send(documents)
        }
    })

如果您在变量double-check中接收值,您也可能想要tempStock


推荐阅读