Quando ho riscontrato il problema esatto, non sono stato in grado di eseguire query ignorando maiuscole e minuscole. Ho finito per copiare il valore che volevo cercare normalizzandolo. In questo caso, puoi creare una nuova proprietà e convertirla in minuscolo e avere un indice su quella.
MODIFICA:
DBObject ref = new BasicDBObject();
ref.put("myfield", Pattern.compile(".*myValue.*" , Pattern.CASE_INSENSITIVE));
DBCursor cur = coll.find(ref);
Mi chiedo se funziona?