MongoDB Documentation, Release 3.0.4 in order to produce a scan with smaller bounds. Intersect Bounds for Multikey Index Compound Bounds for Multikey Index • the bounds for the greater than or equal to 3 predicate (i.e. $gte: 3 ) are [ [ 3, Infinity ] ] ; • the bounds for the less than or equal to 6 predicate (i.e. $lte: 6 ) are [ [ -Infinity, 6 ] ] . Bounds intersection refers to a logical conjunction (i.e. AND ) of multiple bounds. For instance, given two bounds [ [ 3, Infinity ] ] and [ [ -Infinity, 6 ] ] , the intersection of the bounds results in [ [ 3, 6 ] ] . Given an indexed (page 491) array field, consider a query that specifies multiple predicates on the array and can use a multikey index (page 491). MongoDB can intersect multikey index (page 491) bounds if an $elemMatch joins the predicates. For example, a collection survey contains documents with a field item and an array field ratings : { _id: 1, item: "ABC", ratings: [ 2, 9 ] } { _id: 2, item: "XYZ", ratings: [ 4, 3 ] } Create a multikey index (page 491) on the ratings array: db.survey.createIndex( { ratings: 1 } ) The following query uses $elemMatch to require that the array contains at least one single element that matches both conditions: db.survey.find( { ratings : { $elemMatch: { $gte: 3, $lte: 6 } } } ) Taking the predicates separately: Because the query uses $elemMatch to join these predicates, MongoDB can intersect the bounds to: ratings: [ [ 3, 6 ] ] If the query does not join the conditions on the array field with $elemMatch , MongoDB cannot intersect the multikey index bounds. Consider the following query: db.survey.find( { ratings : { $gte: 3, $lte: 6 } } ) The query searches the ratings array for at least one element greater than or equal to 3 and at least one element less than or equal to 6. Because a single element does not need to meet both criteria, MongoDB does not intersect the bounds and uses either [ [ 3, Infinity ] ] or [ [ -Infinity, 6 ] ] . MongoDB makes no guarantee as to which of these two bounds it chooses. Compounding bounds refers to using bounds for multiple keys of compound index (page 489). For instance, given a compound index { a: 1, b: 1 } with bounds on field a of [ [ 3, Infinity ] ] and bounds on field b of [ [ -Infinity, 6 ] ] , compounding the bounds results in the use of both bounds: { a: [ [ 3, Infinity ] ], b: [ [ - Infinity , 6 ] ] } If MongoDB cannot compound the two bounds, MongoDB always constrains the index scan by the bound on its leading field, in this case, a: [ [ 3, Infinity ] ] . Chapter 8. Indexes 512