Pymongo为某些键指定唯一约束

时间:2018-09-06 14:03:37

标签: python mongodb indexing pymongo

我想在我的集合中创建3个索引,一个具有唯一性约束,另一个没有唯一性。要创建多个索引,我可以这样做:

collection.create_index(
   [("key1", pymongo.DESCENDING), 
   ("key2", pymongo.DESCENDING), 
   ("key3", pymongo.DESCENDING)], 
   unique=True
)

但是我所有的索引都是唯一的。我该如何设置key1唯一?唯一的解决方案是重复两次创建索引吗?还是我想念什么?

collection.create_index(
   [("key1", pymongo.DESCENDING)],
   unique=True
)

collection.create_index(
   [("key2", pymongo.DESCENDING),
   ("key3", pymongo.DESCENDING)]
)

1 个答案:

答案 0 :(得分:1)

您的第一个代码示例在所有三个字段上创建一个compound index

如果要分别索引这三列,则需要为每个列分别进行create_index调用:

collection.create_index(
   [("key1", pymongo.DESCENDING)],
   unique=True
)

collection.create_index(
   [("key2", pymongo.DESCENDING)]
)

collection.create_index(
   [("key3", pymongo.DESCENDING)]
)