How can I create an index with pymongo [duplicate]

拜拜、爱过 提交于 2019-11-30 00:37:45

问题


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

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

I get the following error message:

    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 a different/better way to create an index in pymongo?


回答1:


Use the create_index method where you pass in 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')


来源:https://stackoverflow.com/questions/33541290/how-can-i-create-an-index-with-pymongo

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!