web-dev-qa-db-ja.com

pymongoでインデックスを作成するにはどうすればよいですか

Mongo DBの特定のフィールドでテキスト検索を有効にしたい。この検索をpython(-> pymongo)で実装したいと思います。インターネットで指定された指示に従うとき:

db.foo.ensure_index(('field_i_want_to_index', 'text'), name="search_index")

次のエラーメッセージが表示されます。

    Traceback (most recent call last):
    File "CVE_search.py", line 8, in <module>
    db.foo.ensure_index(('field_i_want_to_index', 'text'), name="search_index")
 File "/usr/local/lib/python2.7/dist-packages/pymongo/collection.py", line 1599, in ensure_index
        return self.create_index(key_or_list, cache_for, **kwargs)
      File "/usr/local/lib/python2.7/dist-packages/pymongo/collection.py", line 1466, in create_index
        index_doc = helpers._index_document(keys)
      File "/usr/local/lib/python2.7/dist-packages/pymongo/helpers.py", line 100, in _index_document
            for (key, value) in index_list:
    ValueError: too many values to unpack

Pymongoでインデックスを作成する別の/より良い方法はありますか?

18
Maximilian

create_indexキーを配列として渡し、TEXTインデックス方向として:

collection.create_index([('field_i_want_to_index', pymongo.TEXT)], name='search_index', default_language='english')
25
chridam