You are currently viewing Python MongoDB – Запрос drop_index

Python MongoDB – Запрос drop_index

Функция библиотеки 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().