sql >> Database teknologi >  >> NoSQL >> MongoDB

Sådan udføres jokertegnssøgning i MongoDB ved hjælp af Java

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);



  1. redis Det ser ud til, at serveren har lukket forbindelsen

  2. Kan ikke slette fra mongodb-samlingens kantede MEAN-stack

  3. Redis, hvordan øger man alle scores af et zset med ZINCRBY?

  4. Sådan opdateres hver værdi med en forespørgsel i mongodb