首页 > 解决方案 > 如何编写代码以通过关键字在 MongoDB 中查找项目?

问题描述

我可以使用以下查询按 id 查找项目:

 DATABASE = None
    
 def initialize():
    client = pymongo.MongoClient("mongodb://127.0.0.1:27017")
    DATABASE = client['testdb']
    
 def find(collection,query={"_id": id}):
     return DTABASE[collection].find(query)

如何编写按关键字搜索项目的方法?Test如果我想从testcol内容字段中搜索关键字“”,则需要从 mongo 控制台执行以下两个步骤:

db.testcol.createIndex({content: "text"})
db.testcol.find({ $text: {$search: "\"Test\""}})

如何将我从 mongo 控制台执行的上述两个步骤转换为 Python 代码方法?例如。如下所示。如何构建查询?

def find_by_keywords(collection, query):
    DATABASE[collection].createIndex({ content: "text"})
    return DATABASE[collection].find({ "how to build the query here?" : "\" + keywords + ""})

标签: pythonmongodbindexingpymongo

解决方案


首先,您必须运行它以在数据库上创建文本索引

db.testcol.create_index([('title','text')],language_override="en",default_language='en')

索引只需要创建一次。

然后你可以通过这个数据库上的关键字找到,并且如你所愿:

def find_by_keywords(collection, query):
    DATABASE[collection].createIndex({ content: "text"})
    return DATABASE[collection].find({"$text": {"$search": keywords}})

推荐阅读