PyMongo在全文搜索上选择字段

时间:2014-08-18 23:10:14

标签: python mongodb mongodb-query full-text-search pymongo

民间,
我尝试在 find 方法上使用 fields 参数,我得到了以下错误代码:

TypeError: __init__() got multiple values for keyword argument 'fields'

代码:

mongo.db.products.find({ '$text': { '$search': string } }, { 'score': { '$meta': 'textScore' } }, fields=('name', 'foo', 'bar',))

如果没有全文搜索,字段参数可以正常工作。

1 个答案:

答案 0 :(得分:5)

对于pymongo,'textScore'的“投影部分”需要以完整形式包含在“fields”规范中:

mongo.db.products.find(
    { '$text': { '$search': string } },
    fields=({ 'name': 1, 'foo': 1, 'bar': 1, 'score': { '$meta': 'textScore' } )
)