sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man utför jokerteckensökning i MongoDB med Java

Du kan göra ett reguljärt uttryck matcha på fält i Mongo, så här skulle du göra det första av dina mönster:

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

Var dock försiktig, många reguljära uttrycksmatchningar kräver en fullständig tabellskanning. Detta innebär att om du kör dem mot en stor samling, måste motorn iterera över alla dokument (förmodligen träffar disken) och kontrollera varje individuellt för en matchning. Detta är mycket långsammare än frågor som använder index.

De enda reguljära uttryck som kommer att träffa ett index är skiftlägeskänsliga prefixmatchningar. Du kan söka efter alla "Mon*" så här och använda ett index:

Pattern p = Pattern.compile("^Mon.*");
BasicDBObject query = new BasicDBObject("name", p);

// finds all records with "name" matching /^Mon.*/
DBCursor cursor = collection.find(query);



  1. Visa om listan över kapslade nycklar

  2. Så här gör du:Indexera data från S3 med CDP Data Hub

  3. Beräkna överhoppningsvärde för given post för sorterad personsökning

  4. Hur man migrerar Redis™-data med Redis-Shake