python - 在 mongoengine 中将字段更新为 null
问题描述
我正在使用mongoengine。我希望能够在数据库中将我的字段设置为空,例如。字符串为空。
我尝试了以下操作,在我看来,每当我通过 None 时,该字段都会被跳过,并且我无法替换现有值。这甚至可能吗?
if user.contact_phone_number == "":
user.contact_phone_number = None
我的文件:
contact_phone_number = StringField(
db_field="contactPhoneNumber",
regex=RE_CONTACT_PHONE,
unique=False,
sparse=True,
required=False,
null=True
)
解决方案
将 StringField 设置为 None 没有任何问题,见下文
from mongoengine import *
connect()
class TestDoc(Document):
s = StringField()
TestDoc(s='test').save()
t = TestDoc.objects.first()
assert t.s == 'test'
t.s = ""
t.save()
t = TestDoc.objects.first()
assert t.s is ""
t.s = None
t.save()
t = TestDoc.objects.first()
assert t.s is None
推荐阅读
- python-3.x - UnicodeDecodeError:'ascii'编解码器无法解码位置 433 中的字节 0xe2:创建 conda 环境时序数不在范围内(128)
- docker - 如何启动 MariaDB 并使其运行基于 Centos 的 Docker 映像
- javascript - “未捕获的 ReferenceError:FB 未定义”聊天停止工作
- python - 为什么py转exe后没有出现GUI?
- node.js - 为什么 promisify 会导致循环花费更长的时间?
- nsis - 如何在不覆盖寄存器的情况下为 NSIS exe 生成的日志条目添加当前日期和时间的前缀?
- python - Selenium 如何获取文本的大小
- python - 七(7)行代码python中的繁荣游戏
- python - matplotlib 图例位置的有效位置列表
- qt5 - 以编程方式向 LXDE 桌面管理器发出信号以隐藏其开始面板?