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")
尽管就我所知,这个也不是原子的。我的意思是它在单个文档上是原子的,但在集合上不是原子的。要实现真正的原子化,您需要一个事务。是的,我需要它在集合中具有原子性。我将使用事务。是的,我需要它在集合中是原子的。那么我将使用事务。