Du kan lave et regulært udtryk match på felter i Mongo, her er, hvordan du ville gøre det første af dine mønstre:
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);
Vær dog forsigtig, mange regulære udtryk kræver en fuld tabelscanning. Det betyder, at hvis du kører dem mod en stor samling, bliver motoren nødt til at gentage alle dokumenterne (sandsynligvis rammer disken) og kontrollere hver enkelt for en match. Dette er meget langsommere end forespørgsler, der bruger indekser.
De eneste regulære udtryk, der vil ramme et indeks, er bogstavfølsomme præfiksmatches. Du kan søge efter alle "man*" på denne måde og bruge et indeks:
Pattern p = Pattern.compile("^Mon.*");
BasicDBObject query = new BasicDBObject("name", p);
// finds all records with "name" matching /^Mon.*/
DBCursor cursor = collection.find(query);