python - 如何编写代码以通过关键字在 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 + ""})
解决方案
首先,您必须运行它以在数据库上创建文本索引
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}})
推荐阅读
- .net - 如何使用.net core API 做角度站点地图?
- sublimetext3 - 崇高文本:如何使光标转到查找文本的开头
- android - Dagger2:ViewModel 中的字段注入,具有编译时和运行时依赖项
- docker - 尝试使用 Docker Nginx 和 Certbot 获取 SSL
- android - 增强现实的现实世界对象识别
- excel - 使用 VBA 解析和扩展具有变量的代数方程
- android - FinishAffinity android 5.0 上的 NPE
- python - 无法覆盖flask_bootstrap css
- python-3.x - 来自 pymysql 的 Mysql 连接
- javascript - Javascript 语法错误:缺失