MongoDB Documentation, Release 3.0.4 Another option, again depending on your use case, might be to use separate collections, one for each status. Consider an index { a : 1 } (i.e. an index on the key a sorted in ascending order) on a collection where a has three values evenly distributed across the collection: Example { _id: ObjectId(), a: 1, b: "ab" } { _id: ObjectId(), a: 1, b: "cd" } { _id: ObjectId(), a: 1, b: "ef" } { _id: ObjectId(), a: 2, b: "jk" } { _id: ObjectId(), a: 2, b: "lm" } { _id: ObjectId(), a: 2, b: "no" } { _id: ObjectId(), a: 3, b: "pq" } { _id: ObjectId(), a: 3, b: "rs" } { _id: ObjectId(), a: 3, b: "tv" } { _id: ObjectId(), a: 1, b: "ab" } { _id: ObjectId(), a: 2, b: "cd" } { _id: ObjectId(), a: 3, b: "ef" } { _id: ObjectId(), a: 4, b: "jk" } { _id: ObjectId(), a: 5, b: "lm" } { _id: ObjectId(), a: 6, b: "no" } { _id: ObjectId(), a: 7, b: "pq" } { _id: ObjectId(), a: 8, b: "rs" } { _id: ObjectId(), a: 9, b: "tv" } If you query for { a: 2, b: "no" } MongoDB must scan 3 documents in the collection to return the one matching result. Similarly, a query for { a: { $gt: 1}, b: "tv" } must scan 6 documents, also to return one result. Consider the same index on a collection where a has nine values evenly distributed across the collection: If you query for { a: 2, b: "cd" } , MongoDB must scan only one document to fulfill the query. The index and query are more selective because the values of a are evenly distributed and the query can select a specific document using the index. However, although the index on a is more selective, a query such as { a: { $gt: 5 }, b: "tv" } would still need to scan 4 documents. If overall selectivity is low, and if MongoDB must read a number of documents to return results, then some queries may perform faster without indexes. To determine performance, see Measure Index Use (page 528). For a conceptual introduction to indexes in MongoDB see Index Concepts (page 486). 551 8.3. Indexing Tutorials