Python MondoDB游标查询问题

Python MondoDB游标查询问题,python,mongodb,flask,Python,Mongodb,Flask,我试图创建一个API,使用MongoDB在Flask中输出JSON 在我的控制器中,我有如下路由设置: @frontend.route('/api/get_images_by_building_id/<building_id>') def api_get_images_by_building_id(building_id): building_images = database.get_images_by_building_id(building_id) return

我试图创建一个API,使用MongoDB在Flask中输出JSON

在我的控制器中,我有如下路由设置:

@frontend.route('/api/get_images_by_building_id/<building_id>')
def api_get_images_by_building_id(building_id):
    building_images = database.get_images_by_building_id(building_id)
    return building_images
这将返回:

[ObjectId('506638290f536676fc004702'), ObjectId('506638290f536676fc004703'), ObjectId('506638290f536676fc004704'), ObjectId('506638290f536676fc004705'), ObjectId('506638290f536676fc004706'), ObjectId('506638290f536676fc004707'), ObjectId('506638290f536676fc004708')]
第二个功能是:

def get_images_by_building_id(self, building_id):
    try:
        image_ids = self.get_image_ids_by_building_id(building_id)
        temp = self.images.find({ "_id" : { "$in" : image_ids } })
        return temp
    except:
        return None

处理mongo游标对象的最佳实践是什么?它会导致问题,因为我无法在控制器中对其进行jsonify。在数据库函数中,我应该按照我想要的方式操作数据,还是应该在控制器中进行操作?

我倾向于让请求处理程序尽可能简单和精简。如果
json.dumps
不适合您,并且您不喜欢在数据库模块中放入一堆特定于格式/序列化的代码,我通常会创建一个名为
serializers.py
的模块来定制输出


至于最佳实践,我认为最好不要放一堆“我希望我的控制器像这样返回它,所以我将把所有这些特定的东西放在我的db模块中”。如果您需要返回json以外的内容(我知道这不太可能)!?db模块最好返回db对象(而不是自定义序列化的json字符串),并拥有一个知道如何序列化文档的单独模块。

不确定您的意思,
它会导致问题,因为我无法在控制器中对其进行jsonify。
jsonify是flask中的一个函数,它接收对象并输出json。
def get_images_by_building_id(self, building_id):
    try:
        image_ids = self.get_image_ids_by_building_id(building_id)
        temp = self.images.find({ "_id" : { "$in" : image_ids } })
        return temp
    except:
        return None