首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过mongoengine在mongodb中存储空值?

如何通过mongoengine在mongodb中存储空值?
EN

Stack Overflow用户
提问于 2017-03-04 22:05:55
回答 2查看 3K关注 0票数 2

我正在使用django和mongoengine,这里有一点让我感到困惑:

如何实现存储在mongoDB中的{name: null}。通过mongo 很容易做到这一点,但是我无法通过mongoengine模型找到这样的方法。

此外,

代码语言:javascript
运行
复制
class Person(Document):
    name = StringField(null=True)

参数似乎什么也做不了。

1.模型:

代码语言:javascript
运行
复制
class Person(Document):
    name = StringField()

用法:

代码语言:javascript
运行
复制
person = Person()
person.save()

mongoDB的结果:

代码语言:javascript
运行
复制
{ "_id" : ObjectId("...") }

2.模型:

代码语言:javascript
运行
复制
class Person(Document):
    name = StringField(null=True)

用法:

代码语言:javascript
运行
复制
person = Person(name=None)
person.save()

mongoDB的结果:

代码语言:javascript
运行
复制
{ "_id" : ObjectId("...") }

3.模型:

代码语言:javascript
运行
复制
class Person(Document):
    name = StringField(null=True, required=True)

用法:

代码语言:javascript
运行
复制
person = Person(name=None)
person.save()

mongoDB的结果:

代码语言:javascript
运行
复制
ValidationError (Person:None) (Field is required: ['name'])

问题:

参数的作用是什么?

以及如何通过mongoengine将值存储在mongoDB中?

EN

回答 2

Stack Overflow用户

发布于 2019-07-22 15:26:22

我认为default论点就是你要找的东西。从医生那里:

mongoengine.base.fields.BaseField类 ..。 默认值-(可选)如果未设置值(或未设置该值),则为该字段的默认值。它可以是一个可调用的。

http://docs.mongoengine.org/apireference.html#fields

票数 0
EN

Stack Overflow用户

发布于 2019-07-24 20:05:01

实际上,null参数似乎起到了作用。

见下文:

代码语言:javascript
运行
复制
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}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42601950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档