无法编码对象:pymongo.cursor.Cursor对象at

时间:2017-06-05 22:45:43

标签: python mongodb flask pymongo

我正在尝试在抛出错误时检索存储在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的新手,有人可以指出错误可能来自哪里吗?

1 个答案:

答案 0 :(得分:1)

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

出现错误是因为x和y都是mongodb游标而不是您期望的数据。您应该使用find_one代替。

  

find_one(filter = None,* args,** kwargs)从中获取单个文档   数据库中。

     

find()的所有参数也是find_one()的有效参数,   虽然任何限制参数都会被忽略。返回一个   如果没有找到匹配的文件,则为“文件”或“无”。

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

您可以使用

使代码更简洁
y = data.find_one({'data': {'name': query_param}})