Python MongoDB drop_index Query (original) (raw)

Last Updated : 4 Jul, 2022

The drop_index() library function in PyMongo is used to drop the index from a collection in the database, as the name suggests. In this article, we are going to discuss how to remove an index from a collection using our python application with PyMongo.

Syntax:

dropindex(indexorname, session=None, **kwargs)

Parameters:

What Are Indexes?

Indexes are a special data structure used in MongoDB for increasing the efficiency of query execution. They are defined at the collection level and they allow MongoDB to limit the number of documents that it searches. B-tree data structures are used for indexing in MongoDB. There are various types of Indexes such as single-field indexes, compound indexes, multi-key indexes. For the sake of understanding, in this article, we shall use single-field indexes. On a locally hosted Mongo server, let us create a database test with a collection students.

The database will hold the following information about students as follows:

By default, each collection has the _id index. All collections compulsorily have at least one index. If all indexes are removed, then a new index will be automatically generated. We can see the indexes present by running the following command -

Now, we can run the following code to add a new Index called newIndex to the students collection, given that the mongo server is running:

Example 1: Adding an Index to the Collection

Python3 `

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())

`

Output: As we can see the autogenerated name is newIndex_1. Example 2: Deleting the Index from the Collection

Python3 `

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())

`

Output: The output shows that the newly inserted Index called newIndex was dropped and only the original _id index remained. This is the application of drop_index().

It throws OperationFailure error when trying to drop an index that does not exist.