How can I create an index with pymongo

I want to enable text search in a specific field in my Mongo DB. I want to implement this search in python (-> pymongo). When I follow the instructions on the Internet:

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

The following error message appears:

  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 

Is there another / better way to create an index in pymongo?

+6
source share
1 answer

Use the create_index method, in which you pass the keys as an array and TEXT as the index direction:

 collection.create_index([('field_i_want_to_index', pymongo.TEXT)], name='search_index', default_language='english') 
+10
source

All Articles