使用 pymongo 运行多个更新语句时,有时 MongoDB 不会更新
Posted
技术标签:
【中文标题】使用 pymongo 运行多个更新语句时,有时 MongoDB 不会更新【英文标题】:Sometimes MongoDB does not update when running multiple update statement using pymongo 【发布时间】:2020-09-01 19:05:16 【问题描述】:我有一个包含多个函数和更新语句的脚本。如下所示。每个函数都在执行不同的任务,即使用特定详细信息更新我的 Product2 集合。所有这些都发生在一个 python 脚本中。我的问题是当我运行我的脚本时,有时它不会正确更新。只有当我再次运行脚本时,我才能看到所有内容都已更新。这是进行更新的正确方法还是我错过了什么?请帮忙。我正在使用 MongoDB 4.2.0
def stat1()
db.Products2.update(updatesomething,upsert=False)
def stat2()
db.Products2.update(updatesomething,upsert=False)
def stat3()
db.Products2.update(updatesomething,upsert=False)
if __name__ == "__main__":
stat1()
stat2()
stat3()
【问题讨论】:
【参考方案1】:update()
已经被弃用了一段时间。无论如何,您的用法不正确;更新操作符replace_one()
/ update_one()
/ update_many()
需要知道要更新什么,这是使用filter
参数完成的;类似:
db.Products2.update_one(filter=filter, update=updatesomething, upsert=False)
【讨论】:
以上是关于使用 pymongo 运行多个更新语句时,有时 MongoDB 不会更新的主要内容,如果未能解决你的问题,请参考以下文章