mongoengine文档转换为python字典
目录
mongoengine 使用 Document
类表示 mongodb 中的文档,即一条记录。
如果想向外部系统发送该记录,例如向 web 服务器发送记录数据,就需要将 Document
对象持久化。
Python 的字典是一种很容易持久化的类型,可以使用 json 序列化。
因此需要将 Document
对象转为字典对象。
mongoengine 没有提供从 Document
直接转成 dict 的方法,但 mongoengine 底层由 pymongo 实现,所以 Document
对象可以使用 to_mongo
方法转成 pymongo 支持的对象 bson.son.SON
。
而 SON
对象使用 to_dict
方法可以得到 dict 对象。
示例
定义一个 Document
from mongoengine import Document, StringField
class User(Document):
email = StringField(required=True)
first_name = StringField(max_length=50)
last_name = StringField(max_length=50)
创建对象
user = User(
email="w@w.com",
first_name="Bob",
last_name="Doors")
将对象保存到数据库中
from mongoengine import connect
connect('tumblelog')
user.save()
使用 to_mongo
可以得到 SON 对象
user_son = user.to_mongo()
使用 to_dict
可以得到 dict 对象
user_dict = user_son.to_dict()