Pymongo查找其字段是给定字符串的子字符串的文档

时间:2016-07-21 10:21:49

标签: mongodb pymongo nosql

假设我们有一个包含以下文件的集合:

{_id : 1, str : 'hello'}
{_id : 2, str : 'hello world'}
{_id : 3, str : 'world'}

我想找到str字段是hello world!的子字符串的文档。有没有办法在pymongo中做到这一点?

我知道相反的 - 获取其字段包含字符串的文档可以使用$regex完成,但我想要的是获取其字段包含在字符串中的文档< /强>

1 个答案:

答案 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'}}))

有关详细信息,请参阅: