0

我希望使用 PyMongo 对嵌入在列表中的某些项目进行文本搜索。我的数据库结构如下: {_id:"148319665188372481" }, "tags": ['#123456', '#789012'}

我想专门在我的数据库中搜索短语“123456”,但因为这些项目嵌入在一个列表中......我不太确定该怎么做。

这是我当前的代码:

        accounts.create_index([('tags', pymongo.TEXT)])
        async for something in accounts.find({"$text": {"$search": "123456"}}):
            print('Entered loop')
            print(something)
4

1 回答 1

0

您已经在tags字段上创建了文本索引,但您的数据在items字段中。

您只能为每个集合创建一个文本索引,但如果需要,您可以添加多个字段;tags此示例在和items字段上创建索引:

import pymongo

db = pymongo.MongoClient()['mydatabase']
db.accounts.create_index([('tags', pymongo.TEXT), ('items', pymongo.TEXT)])
db.accounts.insert_one({"items": ['apple', 'orange', 'peach']})

for something in db.accounts.find({"$text": {"$search": 'apple'}}):
    print(something)

结果:

{'_id': ObjectId('5e3f03992a4d2cf213983fe3'), 'items': ['apple', 'orange', 'peach']}
于 2020-02-08T18:55:08.657 回答