我正在使用django和mongoengine,这里有一点让我感到困惑:
如何实现存储在mongoDB中的{name: null}。通过mongo 很容易做到这一点,但是我无法通过mongoengine模型找到这样的方法。
此外,
class Person(Document):
name = StringField(null=True)
空参数似乎什么也做不了。
1.模型:
class Person(Document):
name = StringField()
用法:
person = Person()
person.save()
mongoDB的结果:
{ "_id" : ObjectId("...") }
2.模型:
class Person(Document):
name = StringField(null=True)
用法:
person = Person(name=None)
person.save()
mongoDB的结果:
{ "_id" : ObjectId("...") }
3.模型:
class Person(Document):
name = StringField(null=True, required=True)
用法:
person = Person(name=None)
person.save()
mongoDB的结果:
ValidationError (Person:None) (Field is required: ['name'])
问题:
空参数的作用是什么?
以及如何通过mongoengine将空值存储在mongoDB中?
发布于 2019-07-22 15:26:22
我认为default
论点就是你要找的东西。从医生那里:
mongoengine.base.fields.BaseField类 ..。 默认值-(可选)如果未设置值(或未设置该值),则为该字段的默认值。它可以是一个可调用的。
http://docs.mongoengine.org/apireference.html#fields
发布于 2019-07-24 20:05:01
实际上,null
参数似乎起到了作用。
见下文:
class Person(Document):
name = StringField(null=True)
person = Person().save()
# check raw object that got stored
pymongo_coll = Person._get_collection()
assert pymongo_coll.find_one() == {'_id': person.id, 'name': None}
https://stackoverflow.com/questions/42601950
复制相似问题