如果这样的字段是None
,我需要更新文档的一个字段,但是如果这样的字段具有值,我不想覆盖它。
现在我正在执行以下操作:
p = Person.objects(name="Foo").first()
if p.address is None:
p.update(set__address="Bar Street, NY")
但这不是原子操作。
我想做的事情是这样的:
Person.objects(name="Foo").update_one(set__address_if_none="Bar Street, NY")
但是我似乎在网上找不到任何东西。
有没有类似的东西,或者可以通过其他方式实现这一目标?
答案 0 :(得分:1)
像这样吗?
Person.objects(name="Foo", address=None).update(set__address="Bar Street, NY")
尽管据我所知,这并不是原子的。我的意思是在单个文档中它是原子的,但在集合中却不是。要真正做到原子,您需要进行Mongo seems to support now。