MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak przeprowadzić wyszukiwanie z użyciem symboli wieloznacznych w MongoDB za pomocą Javy

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nie można użyć zagnieżdżonego VariableOperators.mapItemsOf w Spring Data MongoDb

  2. Jak zaprojektować serwer DB i API dla turowej gry planszowej dla wielu graczy na iPhone'a? (myślę o nodejs, mongo, kanapie itp.)

  3. niestandardowe pola _id Django MongoDB MongoEngine

  4. Indeksowanie tablic obiektów w MongoDB

  5. Czy istnieje sposób na utworzenie lub zaktualizowanie indeksu MongoDB?