【问题标题】:Mogodb update() deprecated...having trouble with updateOne() [duplicate]Mongodb update() 已弃用... updateOne() 有问题 [重复]
【发布时间】:2020-03-01 16:42:17
【问题描述】:

我有以下代码:

apiTalon.forEach(talon => {    
        var apiTalonID = talon.ACTIVITY_ID
        var filter = {'ACTIVITY_ID': apiTalonID}
        var newData = talon

        dbo.collection(collectionName).update(
            filter, 
            newData,
            {upsert:true}, 

            function(err, res) {
                if (err) throw err;
                console.log(res)
                db.close();    
            }
        )    
    })

我收到以下错误:

弃用警告:collection.update 已弃用。请改用 updateOne、updateMany 或 bulkWrite

如果我将update() 更改为updateOne(),那么我得到:

MongoError:更新操作文档必须包含原子操作符

我对 Mongo 不是很熟悉,我敢肯定这只是我看不到的语法或格式问题。谁能指出我正确的方向?

【问题讨论】:

  • 其实是的。我之前找到了那篇文章,但我一定是胖手指了一些东西,因为再试一次,一切都很好。谢谢!

标签: mongodb


【解决方案1】:

将代码更改为这个,它工作正常... $set 是关键:

apiTalon.forEach(talon => {    
    var apiTalonID = talon.ACTIVITY_ID
    var filter = {'ACTIVITY_ID': apiTalonID}
    var newData = talon

    dbo.collection(collectionName).update(
        filter, 
        {$set:newData},
        {upsert:true}, 

        function(err, res) {
            if (err) throw err;
            console.log(res)
            db.close();    
        }
    )    
})

【讨论】:

    猜你喜欢
    • 2016-08-11
    • 2016-07-12
    • 1970-01-01
    • 2019-07-17
    • 2020-04-20
    • 2018-01-03
    • 2014-10-27
    • 2020-09-23
    • 2014-03-14
    相关资源
    最近更新 更多