如何在Mongoengine中获取字典对象?
在使用pymongo查询时,我得到的是一个字典对象,这个对象可以直接作为API请求的响应。而使用mongoengine查询数据库时,它返回的是一个文档对象。所以在发送API响应之前,我必须先处理每个对象。
这是我在mongoengine中查询的方式。
users = User.objects(location = 'US')
这段代码会返回一个BaseQueryList
对象,里面包含的是用户模型类型的对象。但我希望它能返回一个用户的字典类型对象的列表。
2 个回答
0
Mongoengine 有一个叫做 to_mongo()
的方法,它可以把数据转换成 Python 的 dict
格式。
users = User.objects(location = 'US')
users.to_mongo()
9
在 BaseQueryList
里,有一个叫 as_pymongo
的方法。我们可以用这个方法把数据行获取为一个包含多个 dict
的 list
,就像我们使用 pymongo
时那样。下面是一个例子:
users = User.objects(location = 'US').as_pymongo()
或者
在 BaseQueryList
里,有一系列 User
类的对象。
在 User
类的对象中,有一个叫 _data
的方法,这个方法会返回数据,格式是 dict
。
所以你可以尝试这样做:
users = [user._data for user in users._iter_results()]
这可能对你有帮助。