Функция библиотеки drop_index() в PyMongo используется для удаления индекса из коллекции в базе данных, как следует из названия. В этой статье мы обсудим, как удалить индекс из коллекции с помощью нашего приложения python с PyMongo.
Синтаксис:
drop_index(index_or_name, session=None, **kwargs)
index_or_name: Имя индекса, созданного вызовом метода create_index() или ensure_index() для коллекции. Если пользовательское имя индекса было создано с помощью Имя параметр, затем здесь должно быть передано пользовательское имя.
session: Это необязательный аргумент, который указывает сеанс ClientSession(из класса pymongo.client_session).
kwargs: Это дополнительные аргументы ключевых слов(необязательно).
Что Такое Индексы?
Индексы — это специальная структура данных, используемая в MongoDB для повышения эффективности выполнения запросов. Они определены на уровне коллекции и позволяют MongoDB ограничивать количество документов, которые он ищет. Структуры данных B-дерева используются для индексирования в MongoDB. Существуют различные типы индексов, такие как индексы с одним полем, составные индексы, индексы с несколькими ключами. Для понимания в этой статье мы будем использовать индексы с одним полем.
На локально размещенном сервере Mongo давайте создадим базу данных test с коллекцией students. В базе данных будет храниться следующая информация о студентах:
По умолчанию каждая коллекция имеет _id. Все коллекции обязательно имеют хотя бы один индекс. Если все индексы будут удалены, то автоматически будет сгенерирован новый индекс. Мы можем увидеть присутствующие индексы, выполнив следующую команду:
Теперь мы можем запустить следующий код, чтобы добавить новый индекс newIndex в коллекцию students, учитывая, что сервер mongo запущен:
Пример 1:
Добавление индекса в коллекцию
import pprint
import pymongo
# connection
try:
client = pymongo.MongoClient()
db = client['test']
print('connection to the server established')
except Exception:
print('Failed to Connect to server')
collection = db.students
# creating an index
resp = collection.create_index("newIndex")
# printing the auto generated name
# returned by MongoDB
print(resp)
# index_information() is analogous
# to getIndexes
pprint.pprint(collection.index_information())
Выход:
Как мы видим, автоматически созданное newIndex_1.
Пример 2:
Удаление индекса из коллекции
import pprint
import pymongo
try:
client = pymongo.MongoClient()
db = client['test']
print('connection to the server established')
except Exception:
print('Failed to Connect to server')
collection = db.students
# dropping the index using autogenerated
# name from MongoDB
collection.drop_index("newIndex_1")
# printing the indexes present on the collection
pprint.pprint(collection.index_information())
Выход:
Вывод показывает, что недавно вставленный индекс, называемый newIndex, был удален, и остался только исходный индекс _id. Это приложение drop_index().