Как запросить и перенастроить индексы коллекции в Python и motor? - PullRequest
0 голосов
/ 31 мая 2019

Вот документация MotorCollection.create_index:

https://motor.readthedocs.io/en/stable/api-tornado/motor_collection.html#motor.motor_tornado.MotorCollection.create_index

Я хочу создать индекс, срок действия которого истекает через X секунд, где X настраивается.Например: количество секунд после того, как неактивные сеансы удаляются из базы данных.Когда кто-то изменяет конфигурацию и перезапускает сервер, мне нужно пересоздать индекс или перенастроить его срок действия.

В базе данных могут быть миллионы строк, и я не хочу воссоздавать индекс, есливремя истечения не изменилось.

Пример:

    self.sessions.create_index([("last_seen", pymongo.ASCENDING)],
        expireAfterSeconds=INACTIVE_SESSION_TTL)

На самом деле INACTIVE_SESSION_TTL не является константой, а некоторым значением, которое задается в конфигурации серверной программы.

Но я ничего не вижу в документации по этому поводу:

  • Что произойдет, если я вызову create_index с другим значением?Я попытался, и он молча игнорирует новый параметр expireAfterSeconds (ничего не изменилось).
  • Так что я думаю, мне придется удалить индекс и воссоздать его.Но нет метода delete_index, или, по крайней мере, он не задокументирован.
  • Удаление и воссоздание индекса было бы глупо в любом случае.Я просто хочу перенастроить время истечения.Возможно ли это?
...