Pymongo указывает уникальное ограничение для определенных ключей - PullRequest
0 голосов
/ 06 сентября 2018

Я хочу создать в своей коллекции 3 индекса: один с уникальным ограничением, а другой без уникального. Для создания нескольких индексов я делаю это:

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

Но все мои индексы будут уникальными. Как я могу сделать, чтобы установить только ключ1 уникальным? Единственное ли решение - повторить создание индекса дважды? Или я что-то пропустил?

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

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

1 Ответ

0 голосов
/ 06 сентября 2018

Ваш первый пример кода создает один составной индекс для всех трех полей.

Если вы хотите отдельно проиндексировать три столбца, вам нужно сделать отдельный вызов create_index для каждого:

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

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

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