如何在Mongoengine中获取字典对象?

2 投票
2 回答
5512 浏览
提问于 2025-04-18 13:12

在使用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 的方法。我们可以用这个方法把数据行获取为一个包含多个 dictlist,就像我们使用 pymongo 时那样。下面是一个例子:

users = User.objects(location = 'US').as_pymongo()

或者

BaseQueryList 里,有一系列 User 类的对象。

User 类的对象中,有一个叫 _data 的方法,这个方法会返回数据,格式是 dict

所以你可以尝试这样做:

users = [user._data for user in users._iter_results()]

这可能对你有帮助。

撰写回答