data range is from "2015-10-28T16:00:00Z" to "2015-10-29T08:00:00Z". > db.order.getIndexes(); "key" : { "order_status.update_time" : -1, "order_status.status" : -1 }, > db.order.find({ "order_status" : { "$elemMatch" : { "update_time" : { "$gte" : ISODate("2015-10-29T07:00:00Z"), "$lt" : ISODate("2015-10-29T08:00:00Z") }, "status" : 2 } } }).explain(); "indexBounds" : { "order_status.update_time" : [ "[new Date(9223372036854775807), new Date(1446102000000)]" ], "order_status.status" : [ "[2.0, 2.0]" ] } > db.order.find({ "order_status" : { "$elemMatch" : { "update_time" : { "$gte" : ISODate("2015-10-28T19:00:00Z"), "$lt" : ISODate("2015-10-28T20:00:00Z") }, "status" : 2 } } }).explain(); "indexBounds" : { "order_status.update_time" : [ "[new Date(9223372036854775807), new Date(1446058800000)]" ], "order_status.status" : [ "[2.0, 2.0]" ] } > db.order.getIndexes(); "key" : { "order_status.update_time" : 1, "order_status.status" : 1 }, > db.order.find({ "order_status" : { "$elemMatch" : { "update_time" : { "$gte" : ISODate("2015-10-28T19:00:00Z"), "$lt" : ISODate("2015-10-28T20:00:00Z") }, "status" : 2 } } }).explain(); "indexBounds" : { "order_status.update_time" : [ "(true, new Date(1446062400000))" ], "order_status.status" : [ "[2.0, 2.0]" ] } > db.order.find({ "order_status" : { "$elemMatch" : { "update_time" : { "$gte" : ISODate("2015-10-29T07:00:00Z"), "$lt" : ISODate("2015-10-29T08:00:00Z") }, "status" : 2 } } }).explain(); "indexBounds" : { "order_status.update_time" : [ "[new Date(1446102000000), new Date(9223372036854775807)]" ], "order_status.status" : [ "[2.0, 2.0]" ] }