Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb pymongo中的多字段索引_Mongodb_Indexing_Pymongo - Fatal编程技术网

Mongodb pymongo中的多字段索引

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

我正试图通过pymongo为我的mongodb集合应用索引。我正在使用


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