// Multiple regular expressions using the same index var t = db.jstests_regexc; // $and using same index twice t.drop(); t.ensureIndex({a: 1}); t.save({a: "0"}); t.save({a: "1"}); t.save({a: "10"}); assert.eq( 1, t.find({$and: [{a: /0/}, {a: /1/}]}).itcount() ); // implicit $and using compound index twice t.drop(); t.ensureIndex({a: 1, b: 1}); t.save({a: "0", b: "1"}); t.save({a: "10", b: "10"}); t.save({a: "10", b: "2"}); assert.eq( 2, t.find({a: /0/, b: /1/}).itcount() ); // $or using same index twice t.drop(); t.ensureIndex({a: 1}); t.save({a: "0"}); t.save({a: "1"}); t.save({a: "2"}); t.save({a: "10"}); assert.eq( 3, t.find({$or: [{a: /0/}, {a: /1/}]}).itcount() );