1.初始化MongoTemplate
// 設置IP和端口
ServerAddress serverAddress = new ServerAddress(“127.0.0.1”, 27017);
MongoClientOptions.Builder builder = new Builder();
// 設置當鏈接空閑時,空閑線程池中最大鏈接數(shù)
builder.connectionsPerHost(100);
// 設置一個線程等待鏈接可用的最大等待毫秒數(shù)
builder.threadsAllowedToBlockForConnectionMultiplier(10);
// 創(chuàng)建客戶端并設置數(shù)據(jù)庫
MongoClient mongo = new MongoClient(serverAddress, builder.build());
MongoTemplate mongoTemplate = new MongoTemplate(mongo, DB_NAME);
2.MongoTemplate實現(xiàn)增刪改查
查詢
// 設置查詢條件
Criteria cri = new Criteria();
(1)and查詢
//相等 * = VALUE
cri.and(KEY).is(VALUE);
// 不相等 * != VALUE --> $ne
cri.and(KEY).ne(VALUE);
// 大于等于 * >= VALUE --> $gte
cri.and(KEY).gte(VALUE);
//大于 * > VALUE --> $gt
cri.and(KEY).gt(VALUE);
// 小于等于 * <= VALUE --> $lte
cri.and(KEY).lte(VALUE);
//小于 * < VALUE --> $lt
cri.and(KEY).lt(VALUE);
// 模糊查詢 * like VALUE
cri.and(KEY).regex((String) VALUE,"i"); // 加上“i”表示不區(qū)分大小寫比較
// 在其中 * in VALUES --> $in
cri.and(KEY).in((List<Object>) VALUES);
// 不在其中 * not in VALUES --> $nin
cri.and(KEY).nin((List<Object>) VALUES);
// 兩值之間包括兩值 VALUE1 <= * <= VALUE2
cri.and(KEY).gte(VALUE1).lte(VALUE2);
// 是否包含某字段 VALUE為true或false --> $exists
cri.and(KEY).exists((Boolean) VALUE);
(2) or查詢
List<Criteria> criteriaList = new ArrayList<>();
// 將or查詢條件添加到list
criteriaList.add(Criteria.where(KEY).is(VALUE));
criteriaList.add(Criteria.where(KEY).ne(VALUE));
....
// 使用 orOperator(Criteria... criterias)
cri.orOperator(criteriaList.toArray(new Criteria[criteriaList.size()]));
// 將條件傳進查詢實例
Query query = new Query(cri);
// 設置排序條件
Sort sort = query.sort();
sort.on(KEY, Order.ASCENDING); // 根據(jù)KEY ASC正序
或sort.on(KEY, Order.DESCENDING); // 根據(jù)KEY DESC逆序
// 根據(jù)query查詢collection下的記錄數(shù)
mongoTemplate.count(query, collection);
// 根據(jù)query查詢collection下的記錄并封裝成class的實體返回
mongoTemplate.find(query, clazz collection);
// 查詢collection下所有記錄并封裝成class的實體返回
mongoTemplate.findAll(clazz , collection);
刪除
// 根據(jù)query刪除collection下的記錄
mongoTemplate.remove(query, collection);
增改
// 保存或更新實體
mongoTemplate.save(obj, collection);
操作集合
// 根據(jù)集合名創(chuàng)建集合
mongoTemplate.createCollection(collection);
// 根據(jù)集合名刪除集合
mongoTemplate.dropCollection(collection);
// 根據(jù)集合名獲取集合對象
mongoTemplate.getCollection(collection);