假设我们有一个包含以下文件的集合:
{_id : 1, str : 'hello'}
{_id : 2, str : 'hello world'}
{_id : 3, str : 'world'}
我想找到str
字段是hello world!
的子字符串的文档。有没有办法在pymongo中做到这一点?
我知道相反的 - 获取其字段包含字符串的文档可以使用$regex
完成,但我想要的是获取其字段包含在字符串中的文档< /强>
答案 0 :(得分:0)
您可以使用文本索引来支持对字符串内容的文本搜索查询。文本索引可以包括任何字段,其值为字符串或字符串元素数组。
这是使用pymongo的最小例子:
D:\sw\python\python.exe, D:\sw\Anaconda3\python.exe
使用您的示例文档,这将导致:
# Get database connection
conn = pymongo.MongoClient('mongodb://localhost:27017/')
coll = conn.get_database('test').get_collection('test')
# Create text index
coll.create_index([('str',pymongo.TEXT)])
# Text search
print list(coll.find({'$text': {'$search': 'hello world'}}))
有关详细信息,请参阅: