List of indexed field(s) of collection and database in MongoDB


getIndexes() method is responsible for listing indexes of collection. You can find all indexes in the collection using getIndexes() method.

Syntex:


db.CollectionName. getIndexes()


Example: Suppose we have a collection Inventory as like below.


{ "_id" : 1, "item" : "item1", "qty" : 1, "BasePrice" : 300, "Price" : 500 }
{ "_id" : 2, "item" : "item1", "qty" : 2, "BasePrice" : 250, "Price" : 200 }
{ "_id" : 3, "item" : "item1", "qty" : 4, "BasePrice" : 250, "Price" : 300 }
{ "_id" : 4, "item" : "item1", "qty" : 8, "BasePrice" : 600, "Price" : 700 }
{ "_id" : 5, "item" : "item1", "qty" : 2, "BasePrice" : 502, "Price" : 500 }


Now use the following query to create an index on the item.


db.Inventory.createIndex( { item: 1 } )


Result:


{
    "createdCollectionAutomatically" : false,
    "numIndexesBefore" : 1,
    "numIndexesAfter" : 2,
    "ok" : 1.0
}


Now run the following query to get a list of indexes in Inventory collection.


db.Inventory.getIndexes()


Result:


[
    {
        "v" : 1,
        "key" : {
            "_id" : 1
        },
        "name" : "_id_",
        "ns" : "Test.Inventory"
    },
    {
        "v" : 1,
        "key" : {
            "item" : 1.0
        },
        "name" : "item_1",
        "ns" : "Test.Inventory"
    }
]


Find all indexes in the database
You can list all indexes in the database with a collection name using the following query.


db.getCollectionNames().forEach(function(collection) {
   indexes = db[collection].getIndexes();
   print("Indexes for " + collection + ":");
   printjson(indexes);
});



 It will list all indexes in the database with a collection name.

No comments:

Post a Comment

Please do not enter any spam link in the comment box.

Related Posts

What is the Use of isNaN Function in JavaScript? A Comprehensive Explanation for Effective Input Validation

In the world of JavaScript, input validation is a critical aspect of ensuring that user-provided data is processed correctly. One indispensa...