Creating index and viewing plans of queries
In this recipe, we will look at querying the data, analyzing its performance by explaining the query plan, and then optimizing it by creating indexes.
Getting ready
For the creation of indexes, we need to have a server up and running. A simple single node is what we need. Refer to the Installing single node MongoDB recipe from Chapter 1, Installing and Starting the Server for instructions on how to start the server. The data that we will operate on needs to be imported in the database. The steps to import the data are given in the previous recipe, Creating test data. Once this prerequisite is complete, we are good to go.
How to do it…
We are trying to write a query that would find us all the zip codes in a given state.
- Execute the following query to view the plan of this query:
> db.postalCodes.find({state:'Maharashtra'}).explain('executionStats')
Take a note of the following fields:
stage
,nReturned
,totalDocsExamined
...