我定义了一个带一些布尔字段的mongoengine文档,并定义了2个操作。第一个包括文档创建,这是我从带有文档字段的JSON完成的。第二个是使用JSON文件以相同方式更新文档。
一个例子是:
class MyDocument
boolean_field = BooleanField()
other_field = StringField()
def create(dict):
doc = MyDocument(**dict)
doc.save()
def create(id, dict):
doc = MyDocument.objects.with_id(id)
for field_to_update, new_field_value in dict:
setattr(doc, field_to_update, new_field_value)
doc.save()
但是,如果我使用这些值创建文档:
{
"boolean_field": "qwer",
"other_field": "qwer"
}
{
"boolean_field": 100,
"other_field": "qwer"
}
文档已创建,但在更新操作中运行良好,不允许我将其他类型用作booleanField值。
这种不同行为的原因是什么?如何以与文档更新相同的方式使文档创建工作。