Mongodb pymongo中的多字段索引
我正试图通过pymongo为我的mongodb集合应用索引。我正在使用Mongodb pymongo中的多字段索引,mongodb,indexing,pymongo,Mongodb,Indexing,Pymongo,我正试图通过pymongo为我的mongodb集合应用索引。我正在使用 db[集合名称]。确保索引([(“字段名称”,“文本”),(“唯一”,1),(“dropDups”,1)]) 它是有效的。但现在如何将其应用于多个领域? 像这样的 db[集合名称]。确保索引([(“字段名称1”,“文本”),(“字段名称2”,“文本”),(“字段名称3”,“文本”),(“唯一”,1),(“dropDups”,1)]) 我知道我们可以使用db.collection.ensureIndex({“$**”:“tex
db[集合名称]。确保索引([(“字段名称”,“文本”),(“唯一”,1),(“dropDups”,1)])
它是有效的。但现在如何将其应用于多个领域?
像这样的
db[集合名称]。确保索引([(“字段名称1”,“文本”),(“字段名称2”,“文本”),(“字段名称3”,“文本”),(“唯一”,1),(“dropDups”,1)])
我知道我们可以使用db.collection.ensureIndex({“$**”:“text”},{“name”:“TextIndex”})
在mongo shell中,但我不想索引所有字段。有人能帮我吗?直接从:
请注意:
MongoDB 2.7.5或更新版本不支持dropDups。如果检测到重复值,则服务器会自动忽略该选项,并且使用该选项的唯一索引生成将失败
无论如何,这将在字段\u name1
和字段\u name2
上创建一个
最后,请注意使用时有一些限制
pymongo的文件中提到了这一点
db[collection_name].create_index([("field_name1" , TEXT),("field_name2", TEXT)],name="index_name"))
这将在[field_name1,field_name2]上提供一个复合索引
您想要一个复合索引,还是在所需的文本字段上使用单独的索引?我想通过python脚本进行复合/复合索引我想,您弄错了,“唯一”这里不是一个字段,而是为了复合索引的唯一性。@Nishant我有多傻。。。谢谢你的评论!:)不用担心19K rockdb[集合名称]。确保索引([(“字段名称1”,文本),(“字段名称2”,文本),(“字段名称3”,文本)],(“唯一”,1),(“dropDups”,1))在使用时,它给了我类型错误:确保索引()最多接受3个参数(给定4个)。但是,当我使用db[collection\u name]时,确保索引([(“field\u name1”,TEXT),(“field\u name2”,TEXT)],name=“index\u name”)工作正常!谢谢
>>> from pymongo import IndexModel, ASCENDING, DESCENDING
>>> index1 = IndexModel([("hello", DESCENDING),
... ("world", ASCENDING)], name="hello_world")
db[collection_name].create_index([("field_name1" , TEXT),("field_name2", TEXT)],name="index_name"))