Python MongoDB - create_index Query - GeeksforGeeks

01 Jun, 2020
MongoDB is an open-source document-oriented database. MongoDB stores data in the form of key-value pairs and is a NoSQL database program. The term NoSQL means non-relational.
Indexing helps in querying the documents efficiently. It stores the value of a specific field or set of fields which are ordered by the value of the field as specified in the index. 
PyMongo contains a function create_index() to explicitly create index. By default _id is the only index present in the document. This function can accept either a key or a list of (key, direction) pairs.
Syntax: 
create_index(keys, session=None, **kwargs)
Let’s look at some examples.
Example 1:
Sample Database:
Python3
from pymongo import MongoClient           # creation of MongoClient client = MongoClient()     # Connect with the portnumber and host client = MongoClient("mongodb://localhost:27017/")     # Access database mydatabase = client['GFG']     # Access collection of the database mycollection = mydatabase['College']   # Before Creating indexindex_list = sorted(list(mycollection.index_information()))print("Before Creating index")print(index_list)  # Creating indexmycollection.create_index("student_id", unique = True)  # After Creating indexindex_list = sorted(list(mycollection.index_information()))print("\nAfter Creating index")print(index_list)
Output:
Before Creating index
['_id_']

After Creating index
['_id_', 'student_id_1']

Here, we create an index named student_id using create_index() method. This results in two indexes in the documents _id and student_id.Using index_information() method, we get all the indexes in the collection,
Here, we create an index named student_id using create_index() method. This results in two indexes in the documents _id and student_id.
Using index_information() method, we get all the indexes in the collection,
Example 2:
Python3
from pymongo import MongoClient           # creation of MongoClient client = MongoClient()     # Connect with the portnumber and host client = MongoClient("mongodb://localhost:27017/")     # Access database mydatabase = client['GFG']     # Access collection of the database mycollection = mydatabase['College']   record = {'_id': 4,           "student_id": 873,          "name": "John",          "section": "A"}  mycollection.insert_one(record)
Output:
DuplicateKeyError                         Traceback (most recent call last)<ipython-input-62-264f0e13db93> in <module>    16 record = {‘_id’: 4, “student_id”: 873, “name”: “John”, “section”: “A”}    17—> 18 mycollection.insert_one(record)
DuplicateKeyError: E11000 duplicate key error collection: GFG.College index: student_id_1 dup key: { : 873 }
It raises the DuplicateKeyError as there is already a document that exists with the student_id 873 and we are trying to insert another document with the same student_id. This error occurs because we created an index on the field student_id and marked it as unique.
Python-mongoDB
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Read JSON file using Python
Adding new column to existing DataFrame in Pandas
Python map() function
How to get column names in Pandas dataframe
Read a file line by line in Python
Enumerate() in Python
Iterate over a list in Python
How to Install PIP on Windows ?
Different ways to create Pandas Dataframe
Python String | replace()