激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java操作MongoDB模糊查詢和分頁查詢

Java操作MongoDB模糊查詢和分頁查詢

2020-04-22 11:34java教程網 JAVA教程

這篇文章主要介紹了Java操作MongoDB模糊查詢和分頁查詢的相關資料,需要的朋友可以參考下

本文實例為大家分享了Java操作MongoDB模糊查詢和分頁查詢,供大家參考,具體內容如下

模糊查詢條件:
1、完全匹配
Pattern pattern = Pattern.compile("^name$", Pattern.CASE_INSENSITIVE);
2、右匹配
Pattern pattern = Pattern.compile("^.*name$", Pattern.CASE_INSENSITIVE);
3、左匹配
Pattern pattern = Pattern.compile("^name.*$", Pattern.CASE_INSENSITIVE);
4、模糊匹配
Pattern pattern = Pattern.compile("^.*name8.*$", Pattern.CASE_INSENSITIVE);
記錄總數查詢:
count(),返回查詢總數。
查詢記錄排序:
BasicDBObject sort = new BasicDBObject();
sort.put("name",1);
1、表示正序;-1.表示倒序
分頁查詢:
skip(),跳過多少條記錄
limit(),返回多少條記錄

代碼實例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
package 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;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
 
public class OperateDemo2 {
 
  /**
   * @return
   * @throws Exception
   */
  public static MongoClient getMongoClient()throws Exception{
    try {
      //===================================================//
      List<ServerAddress> serverList = new ArrayList<ServerAddress>();
      serverList.add(new ServerAddress("192.168.18.85", 27017));
      //===================================================//
      List<MongoCredential> mcList = new ArrayList<MongoCredential>();
      String username = "root";
      String database = "demo";
      char[] password = "root123".toCharArray();
      mcList.add(MongoCredential.createCredential(username, database,password));
      //===================================================//
      MongoClientOptions.Builder builder = MongoClientOptions.builder();
      // 與目標數據庫能夠建立的最大connection數量為50
      builder.connectionsPerHost(50);
      // 如果當前所有的connection都在使用中,則每個connection上可以有50個線程排隊等待
      builder.threadsAllowedToBlockForConnectionMultiplier(50);
      // 一個線程訪問數據庫的時候,在成功獲取到一個可用數據庫連接之前的最長等待時間為2分鐘
      // 這里比較危險,如果超過maxWaitTime都沒有獲取到這個連接的話,該線程就會拋出Exception
      // 故這里設置的maxWaitTime應該足夠大,以免由于排隊線程過多造成的數據庫訪問失敗
      builder.maxWaitTime(1000*60*2);
      // 與數據庫建立連接的timeout設置為1分鐘
      builder.connectTimeout(1000*60*1); 
      //===================================================//
      MongoClientOptions mco = builder.build();
      return new MongoClient(serverList, mcList, mco);
    } catch (Exception e) {
      throw e;
    }
  }
   
  /**
   * @param dbname
   * @return
   * @throws Exception
   */
  public static DB getDB(String dbname) throws Exception{
    return getMongoClient().getDB(dbname);
  }
   
  /**
   * @param db
   */
  public static void collections(DB db){
    Set<String> colls = 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("共有: " + count + "個");
  }
   
   
  /**
   * 模糊查詢
   *
   * @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 pattern = Pattern.compile("^.*name8.*$", Pattern.CASE_INSENSITIVE);
    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("共有: " + count + "個");
  }
   
 
  /**
   * 分頁查詢
   *
   * @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("共有: " + count + "個");
  }
  /**
   * @param args
   * @throws Exception
   */
  public static void main(String[] args) throws Exception {
    DB db = getDB("demo");
    collections(db);
    String name = "users";
    System.out.println("count()=================================================");
    count(db,name);
    System.out.println("query()=================================================");
    query(db,name);
    System.out.println("page()=================================================");
    page(db,name,10, 10);
  }
 
}

以上就是Java操作MongoDB模糊查詢和分頁查詢的實現代碼,希望對大家的學習有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 3级毛片| 久久亚色 | 成人三级电影网址 | 日日草视频| 国产成人网 | 在线播放黄色片 | 亚洲精品一区中文字幕 | 97超碰资源站| 在线观看国产日韩 | 精品一区二区三区免费毛片 | 色综合网在线观看 | 欧美一极视频 | 中文字幕在线观看1 | av在线免费播放网站 | 国产一区国产二区在线观看 | 日本在线观看中文字幕 | a视频在线免费观看 | 国产亚洲网 | 久草在线新时代视觉 | 中国产一级毛片 | 亚洲aⅴ在线观看 | 宅男视频在线观看免费 | 成人在线视频国产 | 中文字幕在线第二页 | 国产一级淫片免费看 | 国产99久久久国产精品下药 | h久久| 成人福利在线看 | 99视频在线观看视频 | 91成人免费在线观看 | 午夜视频免费播放 | 噜噜在线视频 | 91精品国产成人 | 欧美毛片在线观看 | 毛片免费大全短视频 | 午夜国内精品a一区二区桃色 | 在线成人一区二区 | 一级在线视频 | 欧美成人免费电影 | 在线播放黄色片 | 欧美激情视频一区二区免费 |