python 如何在Mongo中搜索不完整或部分查询?

ff29svar  于 2022-12-28  发布在  Python
关注(0)|答案(1)|浏览(113)

使用下面的代码从Mongo中提取记录,获得了完美的结果。

@app.route('/search-all/', methods=['GET', 'POST'])
def search_all():
    query = request.form.get("SearchBox")
    try:
        for x in db['mongo-moviedb'].find({"Films.Title" : f"{query}" }, {"Films.$": 1}):
            title = x["Films"][0]["Title"]
            genre = x["Films"][0]["Genre"]
            cast = x["Films"][0]["Actors"]
            plot = x["Films"][0]["Plot"]
        return render_template('Date-Night.html', title=title,genre=genre,cast=cast,plot=plot)
            
    except (RuntimeError, TypeError, NameError):
            error = 'Not found.'
            return render_template('Date-Night.html', error = error)

问题是它不会提取部分匹配。我可以得到精确匹配或错误提示。我尝试在find()函数中使用$regex和/like/,但没有效果。没有找到任何返回结果仅与记录部分匹配的内容。此外,它还必须包含从表单输入中提取的"query"变量。
例如:"星"将返回星球大战,星人,希望在一个明星...等。
谢谢。
示例:
第一节第一节第一节第一节第一次

kjthegm6

kjthegm61#

正确的语法为:

for x in db['mongo-moviedb'].find({"Films.Title" : {"$regex" :f"{query}"} }, {"Films.$": 1}):

谢谢你,乔!这是你发送的第一个链接。

相关问题