有没有办法在pymongo中过滤textsearch的结果。我有一个光标:
db.models.find(
{'$text': {'$search': 'some_word'}},
{'score': {'$meta': 'textScore'}})
但这会搜索整个集合,我只想搜索某些字段上具有特定值的特定文档。
类似的东西:
db.models.find(
{'$text': {'$search': 'some_word'}},
{'score': {'$meta': 'textScore'}}
{'$filter: {'field1': 'some_value'}}) `// this doesn't work`
我只希望文字搜索能够搜索具有“some_value”的文档。在field1上
答案 0 :(得分:0)
它不搜索整个集合。它使用文本索引。文本索引将$search
中的词干术语与索引中的术语相匹配,这些术语准确指出哪些文档包含这些术语。它不扫描每个文档以查看哪个匹配。您可以对文本匹配应用其他条件,如下所示:
> db.models.find({ "$text" : { "$search" : "some_word" }, "field1" : "some_value" })