【问题标题】:Cannot encode object: pymongo.cursor.Cursor object at无法编码对象:pymongo.cursor.Cursor 对象位于
【发布时间】:2017-06-05 22:45:43
【问题描述】:

当出现上述错误时,我正在尝试检索存储在MongoDB 中的音​​频文件。

代码如下:

elif json_data != None and 'retriever' in json_data:
    query_param = json_data['retriever']
    data = db.soundData
    x = data.find({'name': query_param})
    y = data.find({'data': x})
    return Response(y, mimetype='audio/mp3')

name 下是文件名,data 下是音频文件本身。 由于我是 pymongo 的新手,有人可以指出错误可能来自哪里吗?

【问题讨论】:

    标签: python mongodb flask pymongo


    【解决方案1】:

    首先,你need not be saving your file itself in mongo你应该保存的是文件名,文件本身最好放在文件系统上。

    出现错误是因为 x 和 y 确实是 mongodb 游标,而不是您期望的数据。你应该改用find_one

    find_one(filter=None, *args, **kwargs) 从 数据库。

    find() 的所有参数也是 find_one() 的有效参数, 尽管任何限制参数都将被忽略。返回单个 文档,如果没有找到匹配的文档,则为 None。

    y = data.find_one({'data': x})
    

    你可以让你的代码更简洁

    y = data.find_one({'data': {'name': query_param}})
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-03
      • 1970-01-01
      • 2019-12-12
      • 2013-08-28
      • 2019-08-15
      • 2017-11-17
      相关资源
      最近更新 更多