MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да извършите търсене със заместващи символи в MongoDB с помощта на Java

Можете да направите регулярен израз съвпадение на полета в Mongo, ето как бихте направили първия от вашите шаблони:

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

Внимавайте обаче, много съвпадения на регулярни изрази изискват пълно сканиране на таблица. Това означава, че ако ги стартирате срещу голяма колекция, машината ще трябва да обходи всички документи (вероятно удряйки диск) и да проверява всеки поотделно за съвпадение. Това е много по-бавно от заявките, които използват индекси.

Единствените регулярни изрази, които ще попаднат в индекс, са съвпадения на префикси, чувствителни към главни и малки букви. Можете да търсите всички „Mon*“ по този начин и да използвате индекс:

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. MongoDB+Java:Липсват идентификационни данни в потребителския документ

  2. pymongo не може да се свърже с база данни на отдалечен сървър

  3. MongoDB подходи за съхраняване на големи количества показатели / аналитични данни

  4. Има ли начин да използвате MongoDB обекти за заявки за филтриране на обикновени JavaScript масиви?

  5. Елемент за актуализиране на Node.js в MongoDB