Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x “如何修复”;TypeError:如果未指定方向,则键“U”或“U列表必须是列表的实例”;_Python 3.x_Mongodb - Fatal编程技术网

Python 3.x “如何修复”;TypeError:如果未指定方向,则键“U”或“U列表必须是列表的实例”;

Python 3.x “如何修复”;TypeError:如果未指定方向,则键“U”或“U列表必须是列表的实例”;,python-3.x,mongodb,Python 3.x,Mongodb,我有一个类型错误:如果没有指定方向,则键\u或\u list必须是list的一个实例。我已经创建了方法create_index,我希望这个函数能够搜索mongodb中的字段名 我曾尝试添加.sort('recipe',pymongo.ASCENDING),但这不起作用。我仍然在这一行中遇到相同的错误: total = mongo.db.recipe.create_index({'$text': {'$search': db_query }}) 我的搜索方法代码: @app.route('/se

我有一个
类型错误:如果没有指定方向,则键\u或\u list必须是list的一个实例。我已经创建了方法
create_index
,我希望这个函数能够搜索mongodb中的字段名

我曾尝试添加
.sort('recipe',pymongo.ASCENDING)
,但这不起作用。我仍然在这一行中遇到相同的错误:

total = mongo.db.recipe.create_index({'$text': {'$search': db_query }})
我的搜索方法代码:

@app.route('/search')
def search():
    """Route for full text search bar"""
    page_limit = 6 #Logic for pagination
    current_page = int(request.args.get('current_page', 1))
    db_query = request.args['db_query']
    total = mongo.db.recipe.create_index({'$text': {'$search': db_query }})
    t_total = len([x for x in total])
    pages = range(1, int(math.ceil(t_total / page_limit)) + 1)
    results = mongo.db.recipe.find({'$text': {'$search': db_query }}).sort('_id', pymongo.ASCENDING).skip((current_page - 1)*page_limit).limit(page_limit)
    return render_template('search.html', results=results, pages=pages, current_page=current_page, db_query=db_query)

我希望搜索功能可以搜索我的数据库,例如在网站上,如果我键入'rice',它应该搜索rice receip,而不是我得到的“TypeError:如果没有指定方向,key_或_list必须是list的一个实例”。有什么建议吗?

当你按下搜索键时,你想看到所选的单词。你 应该尝试获取API,以便在搜索任何关键字时,可以调用数据库中的特定id,然后搜索关键字

{
    receip.find({keyword: request.query.keyword, active: true})
}

尝试将其包装到列表中,例如:

db.recipe.create_索引([('field_here',pymongo.ASCENDING)])