Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果mongoengine中的字段为空,则更新字段_Python_Mongodb_Pymongo_Mongoengine - Fatal编程技术网

Python 如果mongoengine中的字段为空,则更新字段

Python 如果mongoengine中的字段为空,则更新字段,python,mongodb,pymongo,mongoengine,Python,Mongodb,Pymongo,Mongoengine,如果文档的某个字段是None,我需要更新该字段,但如果该字段有值,我不想覆盖它 现在我正在做以下工作: p=Person.objects(name=“Foo”).first() 如果p.address为无: p、 更新(设置地址=“纽约州巴尔街”) 但这不是一个原子操作 我想做的是: Person.objects(name=“Foo”).update\u one(如果没有地址,则设置地址)(“纽约酒吧街”) 但我似乎在网上找不到关于它的任何东西 有没有类似的东西,或者我可以用不同的方法来实现

如果文档的某个字段是
None
,我需要更新该字段,但如果该字段有值,我不想覆盖它

现在我正在做以下工作:

p=Person.objects(name=“Foo”).first()
如果p.address为无:
p、 更新(设置地址=“纽约州巴尔街”)
但这不是一个原子操作

我想做的是:

Person.objects(name=“Foo”).update\u one(如果没有地址,则设置地址)(“纽约酒吧街”)
但我似乎在网上找不到关于它的任何东西

有没有类似的东西,或者我可以用不同的方法来实现这一点?

类似的东西

Person.objects(name="Foo", address=None).update(set__address="Bar Street, NY")
尽管就我所知,这个也不是原子的。我的意思是它在单个文档上是原子的,但在集合上不是原子的。要真正做到原子化,您需要一个类似于这样的事务

Person.objects(name="Foo", address=None).update(set__address="Bar Street, NY")

尽管就我所知,这个也不是原子的。我的意思是它在单个文档上是原子的,但在集合上不是原子的。要实现真正的原子化,您需要一个事务。

是的,我需要它在集合中具有原子性。我将使用事务。是的,我需要它在集合中是原子的。那么我将使用事务。