Python 检查字段是否包含字符串(带标点符号)

Python 检查字段是否包含字符串(带标点符号),python,mongodb,pymongo,Python,Mongodb,Pymongo,根据这篇文章和okoboko的回复 我已在集合中的一个字段上创建了索引。如果我使用类似于: db.users.find({$text:{$search:son}) 查询速度很快,很好,但是我想使用标点符号查询我的索引(因为我的文本字段包含URL)。如果我想检索与stackoverflow相关的所有文档,我尝试使用: myCollection.find({“$text”:{“$search”:“\“stackoverflow\.com\”“}”)中页面的: 打印(第[''页] 但这是行不通的。

根据这篇文章和okoboko的回复

我已在集合中的一个字段上创建了索引。如果我使用类似于:

db.users.find({$text:{$search:son})
查询速度很快,很好,但是我想使用标点符号查询我的索引(因为我的文本字段包含URL)。如果我想检索与stackoverflow相关的所有文档,我尝试使用:

myCollection.find({“$text”:{“$search”:“\“stackoverflow\.com\”“}”)中页面的
:
打印(第[''页]
但这是行不通的。搜索包含标点字符串的字段集合的最快方法是什么

我没有收到错误,但我的代码被卡住了,没有返回任何东西,当我探索任务管理器时,我可以看到python正在消耗我的内存,MongoDB服务器也在努力工作

当我使用这段代码时,返回速度非常快,但我也想包括
.com

myCollection.find({“$text”:{“$search”:“\”.stackoverflow\”})中的页面的
:
打印(第[''页]
当我使用这段代码时,会得到一个返回值,但返回时间与使用
$regex
时大致相同:

ScrapedPagesCollection.find({“$text”:{“$search”:“\”stackoverflow.com\”})中的页面的
:
打印(第[''页]
这对我很有用:

import pymongo

db = pymongo.MongoClient()['mydatabase']
db.mycollection.insert_one( { 'site': 'https://www.stackoverflow.com' } )
db.mycollection.create_index([('site', pymongo.TEXT)])

print(list(db.mycollection.find( { '$text': { '$search': 'stackoverflow.com' } } )))
给出:

[{'_id': ObjectId('5e3584b1534c1043defcd5bb'), 'site': 'https://www.stackoverflow.com'}]

这条线索似乎回答了我的问题,但我弄不好。请添加您收到的错误。我添加了更多信息。可能我使用
\u id
作为
url时有问题