// Check proper range combinations with or clauses overlapping non or portion of query SERVER-2302 t = db.jstests_indexm; t.drop(); t.save({a: [{x: 1}, {x: 2}, {x: 3}, {x: 4}]}); function test() { assert.eq(1, t.count({a: {x: 1}, "$or": [{a: {x: 2}}, {a: {x: 3}}]})); } // The first find will return a result since there isn't an index. test(); // Now create an index. t.ensureIndex({"a": 1}); test(); // Now create a different index. t.dropIndexes(); t.ensureIndex({"a.x": 1}); test(); // Drop the indexes. t.dropIndexes(); test();