如何编写代码以通过关键字在 MongoDB 中查找项目?

Posted

技术标签:

【中文标题】如何编写代码以通过关键字在 MongoDB 中查找项目?【英文标题】:How to write the code to find items in MongoDB by keywords? 【发布时间】:2021-09-29 08:40:24 【问题描述】:

我可以使用以下查询按 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)

如何编写按关键字搜索项目的方法? 如果我想从testcol 内容字段中搜索关键字“Test”,则需要从 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 + "")

【问题讨论】:

PyMongo 的 createIndex 有创建 text 索引的详细信息。 【参考方案1】:

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

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)

【讨论】:

以上是关于如何编写代码以通过关键字在 MongoDB 中查找项目?的主要内容,如果未能解决你的问题,请参考以下文章

在 Spring Boot Mongodb 中使用聚合框架按计数查找组

如何在数组中查找数据 mongodb , nodejs

在 express API 中获取字符串以传递给 mongodb 查找函数

如何编写AWK命令来查找差异和比较

如何在mongodb聚合中查找搜索字符串的出现次数?

如何提高 MongoDB 中 update() 和 save() 的性能?