이 기사에서는 참조를 위해 Java Operation Mongodb 퍼지 쿼리 및 Pagination Query를 공유합니다. 특정 내용은 다음과 같습니다
퍼지 쿼리 조건 :
1. 정확히 일치합니다
Pattern Pattern = Pattern.comPile ( "^Name $", Pattern.case_insensitive);
2. 올바른 일치
Pattern Pattern = Pattern.comPile ( "^.*Name $", Pattern.case_insensive);
3. 왼쪽 경기
Pattern Pattern = Pattern.comPile ( "^name.*$", Pattern.case_insensive);
4. 퍼지 매칭
Pattern Pattern = Pattern.comPile ( "^.*name8.*$", Pattern.case_insensive);
총 레코드 쿼리 :
count (), 총 쿼리 수를 반환합니다.
쿼리 레코드 정렬 :
BASICDBOBJECT SORT = NEW BASICDBOBJECT ();
sort.put ( "이름", 1);
1. 양의 순서를 나타냅니다. -1. 역 순서를 나타냅니다
페이지 매김 쿼리 :
건너 뛰기 (), 몇 개의 레코드가 건너 뜁니다
Limit (), 얼마나 많은 레코드가 반환됩니까?
Code example:
패키지 com.what21.mongodb.demo; import java.util.arraylist; import java.util.list; import java.util.set; import java.util.regex.pattern; import com.mongodb.basicdbobject; import com.mongodb.db; import com.mongodb.dbcollection; import com.mongodb.dbcursor; import com.mongodb.dbobject; import com.mongodb.mongoclient; import com.mongodb.mongoclientoptions; Mongodb.mongodb.mongodb.mongodections; com.mongodb.serveraddress; 공개 클래스 OperatedEmo2 { / ** * @return * @throws 예외 * / public static mongoclient getMongoclient () throws exception {try { // ================================================================================================= // list <serverAddress> (serverAddress>); ServerList.Add (New ServerAddress ( "192.168.18.85", 27017)); // ================================================================= // 목록 <mongocredential> mclist = new Arraylist <Mongocredentity> (); 문자열 사용자 이름 = "루트"; 문자열 데이터베이스 = "데모"; char [] password = "root123".tochararray (); mclist.add (mongocredential.createcredential (사용자 이름, 데이터베이스, 비밀번호)); // ==================================================================================== // Mongoclientoptions = Mongoclertions (buoclder); // 대상 데이터베이스로 생성 할 수있는 최대 연결 수는 50 builder.connectionsperhost (50)입니다. // 모든 연결이 현재 사용중인 경우 Builder를 기다리기 위해 50 개의 스레드가 대기열 될 수 있습니다. ThreadSalkeDalkEdToBlockforConnectionMultiplier (50); // 스레드가 데이터베이스에 액세스하면 사용 가능한 데이터베이스 연결을 성공적으로 얻기 전에 최대 대기 시간은 2 분입니다. // 이것은 더 위험합니다. Maxwaittime 이후에 연결을 얻지 못하면 스레드는 예외를 던집니다. 따라서 여기에 설정된 Maxwaittime은 과도한 대기열 스레드 Builder.maxwaittime (1000*60*2)으로 인해 데이터베이스 액세스 실패를 피할 수있을 정도로 커야합니다. // 데이터베이스와 연결을 1 분 빌더로 설정하기위한 타임 아웃을 설정합니다 .ConnectTimeout (1000*60*1); // ================================================================================================================= ========================================================================================================= mongoclientoptions mco = builder.build (); New Mongoclient (ServerList, McList, MCO)를 반환합니다. } catch (예외 e) {Throw e; }} / ** * @param dbname * @return * @throws Exception * / public static db getdb (string dbname)는 예외 {return getMongoclient (). getdb (dbname); } / ** * @param db * / public static void collection (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, 문자열 이름) {dbcollection dbcoll = db.getCollection (이름); int count = dbcoll.find (). count (); System.out.println ( "총 :" + count + "s"); } / ** * 퍼지 쿼리 * * @param db * @param name * / public static void query (db db, 문자열 이름) {dbcollection dbcoll = db.getCollection (이름); // 정확한 일치 // 패턴 패턴 = pattern.compile ( "^name $", pattern.case_insensitive); // 오른쪽 일치 // 패턴 패턴 = pattern.compile ( "^.*name $", pattern.case_insensitive); // 왼쪽 매치 // 패턴 패턴 = pattern.compile ( "^name.*$", pattern.case_insensitive); // 퍼지 매치 패턴 = Pattern.comPile ( "^.*name8.*$", Pattern.case_insensive); BasicdBobject query = new BasicdBobject (); query.put ( "이름", 패턴); BASICDBOBJECT SORT = NEW BASICDBOBJECT (); // 1은 양의 순서를 나타냅니다. -1, 리버스 순서 정렬을 나타냅니다 .put ( "이름", 1); dbcursor cur = dbcoll.find (query) .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")); 카운트 ++; } system.out.println ( "Total :" + count + "Items"); } / ** * Pagination Query * * @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 ( "이름", 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")); 카운트 ++; } system.out.println ( "총 :" + count + "s"); } / ** * @param args * @throws Exception * / public static void main (String [] args)은 예외 {db db = getdb ( "demo"); 수집 (DB); 문자열 이름 = "사용자"; System.out.println ( "count () ============================================================= count (db, name); System.out.println ( "query () ========================================================= 쿼리 (db, name); System.out.println ( "page () ============================================================== 페이지 (db, 이름, 10, 10); }}위의 것은 Java Operations MongoDB 퍼지 쿼리 및 Pagination Query의 구현 코드입니다. 모든 사람의 학습에 도움이되기를 바랍니다.