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")

我收到以下错误消息:

    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中是否有其他/更好的方法来创建索引?

推荐答案

使用100方法,其中键作为数组传入,101作为索引方向传入:

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

Mongodb相关问答推荐

MongoDB:子文档中仅存在于父文档中的返回字段?

如何将数组$拉到对象数组下

发布到 MongoDB 时生成的附加id字段

在数据中只有月份和年份的 mongodb 中字符串的日期时间

使用 $addFields 将字段添加到 $lookup 结果中的每个项目

Spring Data + MongoDB GridFS 可以通过 Repository 访问吗?

MongoDB映射/减少多个集合?

mongo _id 字段重复键错误

MongoDB .NET 未在 upsert 上生成 _id

带有 mongodb 和 nodejs 的实时 Web 应用程序

Mongodb将重音字符匹配为基础字符

mongodb上不区分大小写的查询

如何在 mongoDB 中聚合巨大的数组?

C# mongodb driver 2.0 - 如何在批量操作中更新插入?

如何使用 MongoDB 和 Mongoid 在 Rails 3 上进行适当的数据库测试 (TDD)

为什么使用 Redis 而不是 MongoDb 进行缓存?

mongodb nodejs - 转换圆形 struct

从每个组中 Select 前 N 行

Cannot connect to MongoDB errno:61

MongoDB Compass 中 JSON 输入意外结束