В этой статье разделяет Java Operation MongoDB Fuzzy Query and Pagination запрос для вашей ссылки. Конкретный контент заключается в следующем
Нечеткие условия запроса:
1. Точное совпадение
Шаблон шаблона = pattern.compile ("^name $", pattern.case_insensity);
2. Правильный матч
Шаблон шаблона = pattern.compile ("^.*Name $", pattern.case_insensity);
3. левый матч
Шаблон шаблона = pattern.compile ("^name.*$", Pattern.case_insensity);
4. Нечеткое сочетание
Шаблон шаблона = pattern.compile ("^.*Name8.*$", Pattern.case_insensity);
Общий запрос записей:
count (), возвращает общее количество запросов.
Сортировка записи запроса:
BasicDbobject sort = new BasicDBobject ();
sort.put ("name", 1);
1. Представляет положительный порядок; -1 Представляет собой обратный порядок
Запрос на страницах:
Skip (), сколько запис
Limit (), сколько записей возвращено
Пример кода:
пакет com.what21.mongodb.demo; Импорт java.util.arraylist; импорт java.util.list; import java.util.set; import java.util.regex.pattern; Импорт com.mongodb.basicdbobject; import com.mongodb.db; import com.mongodb.dbcollection; импорт com.mongodb.dbcursor; импорт com.mongodb.dbobject; импорт com.mongodb.mongoclient; импорт com.mongodb.mongoclientoption com.mongodb.serveraddress; Открытый класс hopertedemo2 { / ** * @return * @Throws Exception * / public static mongoclient getMongoclient () Throws {try { // ============================================================================================================== Serverlist.add (New ServerAddress ("192.168.18.85", 27017)); // ======================================================================================= String username = "root"; String Database = "Demo"; char [] password = "root123" .tchararray (); mclist.add (mongocredential.createcredential (имя пользователя, база данных, пароль)); // ==================================================================================================== // Максимальное количество соединений, которые могут быть созданы с целевой базой данных, составляет 50 Builder.connectionsperhost (50); // Если все подключения используются в настоящее время, может быть 50 потоков, чтобы ждать Builder.ThreadSallowedToblockforConnectionMultiplier (50); // Когда поток обращается к базе данных, максимальное время ожидания до успешного получения доступного соединения базы данных составляет 2 минуты. // это более опасно. Если соединение не получено после MaxWaittime, поток будет выбросить исключение // Следовательно, установленная здесь MaxWaittime должно быть достаточно большим, чтобы избежать сбоя доступа к базе данных из -за чрезмерного строительства в очереди. MaxWaitTime (1000*60*2); // Установить тайм -аут для установления соединения с базой данных на 1 минуту Builder.connecttimeout (1000*60*1); // ======================================================================================== ========================================================================================== Mongoclientoptions mco = builder.build (); вернуть новый Mongoclient (Serverlist, McList, MCO); } catch (Exception e) {throw e; }} / ** * @param dbname * @return * @throhs Exception * / public Static DB getDB (String dbname) Throws Exception {return getMongoclient (). getDB (dbname); } / ** * @param db * / public static void collections (db db) {set <string> cols = db.getCollectionNames (); for (String collname: colls) {System.out.println (collname); }} / ** * Запрос для общих записей * * @param db * @param name * / public static void count (db db, string name) {dbcollection dbcoll = db.getCollection (name); int count = dbcoll.find (). count (); System.out.println ("total:" + count + "s"); } / ** * Fuzzy Query * * @param db * @param name * / public static void Query (db db, string name) {dbcollection dbcoll = db.getCollection (name); // точное совпадение // шаблон шаблона = pattern.compile ("^name $", pattern.case_insensity); // правое совпадение // шаблон шаблона = pattern.compile ("^.*Name $", pattern.case_insensity); // левое совпадение // шаблон шаблона = шаблон. // нечеткий шаблон соответствия шаблона = pattern.compile ("^.*Name8.*$", Pattern.case_insensity); Basicdbobject Query = new BasicDBobject (); Query.put ("имя", шаблон); BasicDbobject sort = new BasicDBobject (); // 1 указывает на положительный порядок; -1, указывает на обратный заказ sort.put ("name", 1); Dbcursor cur = dbcoll.find (Query) .sort (sort); int count = 0; while (cur.hasnext ()) {dbobject obj = cur.next (); System.out.print ("name =" + obj.get ("name")); System.out.print (", email =" + obj.get ("email")); System.out.println (", passwd =" + obj.get ("passwd")); count ++; } System.out.println ("total:" + count + "elects"); } / ** * Query Pagination * * @param db * @param name * @param start * @param pagesize * / public static void page (db db, имя строки, int start, int pagesize) {dbcollection dbcoll = db.getCollection (name); BasicDbobject sort = new BasicDBobject (); sort.put ("name", 1); Dbcursor cur = dbcoll.find (). Sort (sort) .skip (start) .limit (pagesize) ;; int count = 0; while (cur.hasnext ()) {dbobject obj = cur.next (); System.out.print ("name =" + obj.get ("name")); System.out.print (", email =" + obj.get ("email")); System.out.println (", passwd =" + obj.get ("passwd")); count ++; } System.out.println ("total:" + count + "s"); } / ** * @param args * @throhs Exception * / public static void main (string [] args) бросает исключение {db db = getDB ("demo"); коллекции (дБ); String name = "users"; System.out.println ("count () =============================================================================== счет (дБ, имя); System.out.println ("Query () ============================================================ запрос (дБ, имя); System.out.println ("page () =============================================================================== Страница (DB, имя, 10, 10); }}Выше приведено код реализации для нечетких запросов и страниц на Java Operations MongoDB. Я надеюсь, что это будет полезно для каждого обучения.