2014-09-23 90 views
0

是否有办法过滤pymongo中的文本搜索结果。我有一个光标:在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

它不搜索整个集合文件搜索。它使用文本索引。文本索引与索引中的术语$search中的词干术语相匹配,以明确指出哪些文档包含这些术语。它不扫描每个文档以查看哪个匹配。您可以申请附加条件的文本匹配,像这样:

> db.models.find({ "$text" : { "$search" : "some_word" }, "field1" : "some_value" }) 
+0

我刚刚发现的文档解决方案,我不知道我错过了... – 2014-09-24 08:41:42