'Motor Index not created on empty Collection

I have the following code to setup my database:

self.con = motor.MotorClient(host, port)
self.Db = self.con.DB
self.Col = self.Db.Col

self.Col.create_index("c")
self.Col.create_index("h")

When I run index_information() I only see index information on _id field. However if I move the create_index() after some entries are inserted the index_information() shows the new indexes. Does this mean I have to wait until I have entries in the collection before I can create indexes? Is there another way to do this since I start with an empty collection?



Solution 1:[1]

You can very easily create the index on mongodb (even on empty collection) using field_name and direction.

field_name: can be any field on which you want to create the index.
direction: can be any one from these values: 1, -1, 2dsphere, text or hashed

Refer MotorCollection Doc for details

In the below code I am trying to create index using motor library and python.

db.collection_name.create_index([("field_name", 1)] # To create ascending index
db.collection_name.create_index([("geoloc_field_name", "2dsphere")] # To create geo index
db.collection_name.create_index([("field_name", "text")] # To create text based index

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Preety Kumari