MongoDB Documentation, Release 3.0.4 If you have a posts collection containing blog posts, and if you regularly issue a query that sorts on the author_name field, then you can optimize the query by creating an index on the author_name field: Example db.posts.createIndex( { author_name : 1 } ) Indexes also improve efficiency on queries that routinely sort on a given field. If you regularly issue a query that sorts on the timestamp field, then you can optimize the query by creating an index on the timestamp field: Creating this index: db.posts.createIndex( { timestamp : 1 } ) Optimizes this query: db.posts.find().sort( { timestamp : -1 } ) Because MongoDB can read indexes in both ascending and descending order, the direction of a single-key index does not matter. Indexes support queries, update operations, and some phases of the aggregation pipeline (page 441). Index keys that are of the BinData type are more efficiently stored in the index if: Limit the Number of Query Results to Reduce Network Demand MongoDB cursors return results in groups of multiple documents. If you know the number of results you want, you can reduce the demand on network resources by issuing the limit() method. This is typically used in conjunction with sort operations. For example, if you need only 10 results from your query to the posts collection, you would issue the following command: db.posts.find().sort( { timestamp : -1 } ).limit(10) For more information on limiting results, see limit() Use Projections to Return Only Necessary Data • the binary subtype value is in the range of 0-7 or 128-135, and • the length of the byte array is: 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, or 32. When you need only a subset of fields from documents, you can achieve better performance by returning only the fields you need: For example, if in your query to the posts collection, you need only the timestamp , title , author , and abstract fields, you would issue the following command: db.posts.find( {}, { timestamp : 1 , title : 1 , author : 1 , abstract : 1} ).sort( { timestamp For more information on using projections, see Limit Fields to Return from a Query (page 107). 217 5.1. Administration Concepts