如何编写代码以通过关键字在 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 中使用聚合框架按计数查找组