Możesz wykonać Wyrażenie regularne dopasuj na polach w Mongo, oto jak zrobić pierwszy ze swoich wzorców:
Pattern p = Pattern.compile("Mon.*DB", CASE_INSENSITIVE);
BasicDBObject query = new BasicDBObject("name", p);
// finds all records with "name" matching /Mon.*DB/i
DBCursor cursor = collection.find(query);
Należy jednak zachować ostrożność, ponieważ wiele dopasowań wyrażeń regularnych wymaga pełnego skanowania tabeli. Oznacza to, że jeśli uruchomisz je w dużej kolekcji, silnik będzie musiał iterować po wszystkich dokumentach (prawdopodobnie uderzając w dysk) i sprawdzać każdy z osobna pod kątem dopasowania. Jest to znacznie wolniejsze niż zapytania korzystające z indeksów.
Jedynymi wyrażeniami regularnymi, które trafią w indeks, są dopasowania prefiksów z rozróżnianiem wielkości liter. Możesz wyszukać wszystkie „Mon*” w ten sposób i użyć indeksu:
Pattern p = Pattern.compile("^Mon.*");
BasicDBObject query = new BasicDBObject("name", p);
// finds all records with "name" matching /^Mon.*/
DBCursor cursor = collection.find(query);