この記事では、参照のためにJava Mongodbファジークエリとページネーションクエリを共有しています。特定のコンテンツは次のとおりです
ファジークエリ条件:
1。正確な一致
パターンパターン= pattern.compile( "^name $"、pattern.case_insensivity);
2。右マッチ
パターンパターン= pattern.compile( "^。*name $"、pattern.case_insensitive);
3。左マッチ
パターンパターン= pattern.compile( "^name。*$"、pattern.case_insensivity);
4。ファジーマッチング
パターンパターン= pattern.compile( "^。*name8。*$"、pattern.case_insensivity);
合計レコードクエリ:
count()、クエリの総数を返します。
クエリレコードソート:
BASICDBOBJECT sort = new BasicDboBject();
sort.put( "name"、1);
1。正の順序を表します。 -1。逆の順序を表します
ページネーションクエリ:
Skip()、レコードの数
limit()、返されるレコードの数
コード例:
パッケージcom.what21.mongodb.demo; Import java.util.arraylist; import java.util.list; import java.util.set; import java.util.regex.pattern; com.mongodb.basicdbobject;インポートcom.mongodb.db;インポートcom.mongodb.dbcollection; import com.mongodb.dbcursor; import com.mongodb.dbobject; import com.mongodb.mongoclient; Import com.mongodb.mongodb.mongodb.mongodb.mongodb.mongodb.mongodb.mongodb.mongodb.mongodb.mongodb.mongodb.mongodb.mongodb.mongodb.mongodb.mongodb.mongodb.mongodb.Mongodb. com.mongodb.serveraddress; public class operatedemo2 { / ** * @return * @throws例外 * / public static mongoclient getMongoclient()throws Exception {try { // ==================================================================================== ServerList.Add(new ServerAddress( "192.168.18.85"、27017)); // ===================================================================================================================================================================================================================文字列username = "root";文字列database = "demo"; char [] password = "root123" .tochararray(); mclist.add(mongocredential.createcredention(username、database、password)); // ======================================================================= // MONGOCLIENTOPTIONS.BUILDER = MONGOCLIENTOPTTIONDER //ターゲットデータベースで作成できる接続の最大数は50 Builder.ConnectionSperhost(50)です。 //すべての接続が現在使用されている場合、Builderを待つために50個のスレッドがキューになっている可能性があります。 //スレッドがデータベースにアクセスすると、利用可能なデータベース接続を正常に取得する前の最大待機時間は2分です。 //これはより危険です。 Maxwaittimeの後に接続が取得されない場合、スレッドは例外をスローします。 //データベースとの接続を確立するためのタイムアウトを1分間のBuilder.ConnectTimeout(1000*60*1)に設定します。 // ================================================================================== ===================================================================================== mongoclientoptions mco = builder.build();新しいmongoclient(serverlist、mclist、mco)を返します。 } catch(例外e){スローe; }} / ** * @param dbname * @return * @throws例外 * / public static db getDb(string dbname)throws exception {return getMongoclient()。getDb(dbname); } / ** * @param db * / public static void collectss(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 pattern = pattern.compile( "^name $"、pattern.case_insensitive); //右マッチ// pattern pattern = pattern.compile( "^。*name $"、pattern.case_insensitive); //左マッチ// pattern pattern = pattern.compile( "^name。*$"、pattern.case_insensitive); //ファジーマッチパターン= pattern.compile( "^。*name8。*$"、pattern.case_insensivity); BASICDBOBJECT query = new BasicDBoBject(); query.put( "name"、pattern); 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 + "items"); } / ** *ページネーションクエリ * * @param db * @param name * @param start * @param pagesize * / public static void page(db db、string name、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 * @throws例外 * / public static void main(string [] args)throws exception {db db = getdb( "demo");コレクション(DB);文字列name = "users"; System.out.println( "count()========================================================================== count(db、name); system.out.println( "query()================================================================================クエリ(db、name); System.out.println( "page()================================================================================ページ(db、name、10、10); }}上記は、Java Operations Mongodb Fuzzyクエリとページネーションクエリの実装コードです。みんなの学習に役立つことを願っています。