Kiedy miałem dokładny problem, nie byłem w stanie wykonać zapytania, ignorując wielkość liter. Skończyło się na skopiowaniu wartości, którą chciałem przeszukać, normalizując ją. W takim przypadku możesz utworzyć nową właściwość i przekonwertować ją na małe litery i dodać do niej indeks.
EDYTUJ:
DBObject ref = new BasicDBObject();
ref.put("myfield", Pattern.compile(".*myValue.*" , Pattern.CASE_INSENSITIVE));
DBCursor cur = coll.find(ref);
Zastanawiam się, czy to działa?