package com.logapi.monitor.common.util; import com.logapi.monitor.common.pojo.PageParam; import com.mongodb.BasicDBObject; import com.mongodb.MongoClient; import com.mongodb.client.*; import com.mongodb.client.model.Sorts; import com.sun.org.apache.bcel.internal.generic.NEW; import org.bson.Document; import org.bson.conversions.Bson; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.convert.MongoConverter; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.List; @Component public class MongoUtil { @Autowired private MongoClient mongoClient; @Autowired private MongoConverter mongoConverter; /** * 获取database * * @return * @paramdbName */ public MongoDatabase getDB(String dbName) { if (dbName != null && !"".equals(dbName)) { MongoDatabase database = mongoClient.getDatabase(dbName); return database; } return null; } /** * @author: ganchao * @description: 单条数据插入 * @date: 2019/9/2 8:43 * @param: [dbName, collectionName, document] * @return: void */ public void insert(String dbName, String collectionName,Document document){ MongoCollection<Document> collection = getDB(dbName).getCollection(collectionName); collection.insertOne(document); } /** * @author: ganchao * @description: list数据插入 * @date: 2019/9/2 8:43 * @param: [dbName, collectionName, documents] * @return: void */ public void insertList(String dbName, String collectionName,List<Document> documents){ MongoCollection<Document> collection = getDB(dbName).getCollection(collectionName); collection.insertMany(documents); } /** * @author: ganchao * @description: 删除单条数据 * @date: 2019/9/2 8:49 * @param: [dbName, collectionName, basicDBObject] * @return: void */ public void deleteOne(String dbName, String collectionName,Bson basicDBObject){ MongoCollection<Document> collection = getDB(dbName).getCollection(collectionName); //collection.findOneAndDelete(basicDBObject); //删除一条 collection.deleteOne(basicDBObject); } /** * @author: ganchao * @description: 删除多条数据 * @date: 2019/9/2 8:50 * @param: [dbName, collectionName, basicDBObject] * @return: void */ public void deleteMany(String dbName, String collectionName,Bson basicDBObject){ MongoCollection<Document> collection = getDB(dbName).getCollection(collectionName); collection.deleteMany(basicDBObject); } /** * @author: ganchao * @description: 更新单条数据 * @date: 2019/9/2 8:50 * @param: [dbName, collectionName, query, updateObject] * @return: void */ public void update(String dbName, String collectionName,BasicDBObject query,Bson updateObject){ MongoCollection<Document> collection = getDB(dbName).getCollection(collectionName); //更新一条数据 collection.updateOne(query,updateObject); } /** * @author: ganchao * @description: 更新多条数据 * @date: 2019/9/2 8:50 * @param: [dbName, collectionName, query, updateObject] * @return: void */ public void updateMany(String dbName, String collectionName,BasicDBObject query,Bson updateObject){ MongoCollection<Document> collection = getDB(dbName).getCollection(collectionName); //更新多条数据 collection.updateMany(query, updateObject); } /** * 条件查询记录数量 * * @return * @paramcollection * @paramfilter */ public Long count(String dbName, String collectionName, BasicDBObject query) { Long count = 0L; if (query == null) { query = new BasicDBObject(); } if (null == collectionName || "".equals(collectionName)) { return null; } if (null == dbName || "".equals(dbName)) { return null; } MongoDatabase database = getDB(dbName); if (database != null) { MongoCollection<Document> collection = database.getCollection(collectionName); try { //构建查询条件 count = collection.count(query); } finally { } } else { return null; } return count; } /** * 条件查询 * * @return * @paramcollection * @paramfilter */ public <T> List<T> find(String dbName, String collectionName, Class<T> clazz, BasicDBObject query, Bson sort, PageParam page, String[] fields) { if (query == null) { query = new BasicDBObject(); } List<T> list = new ArrayList<T>(); MongoCursor<Document> cursor = null; if (null == collectionName || "".equals(collectionName)) { return null; } if (null == dbName || "".equals(dbName)) { return null; } MongoDatabase database = getDB(dbName); if (database != null) { MongoCollection<Document> collection = database.getCollection(collectionName); try { //构建查询条件 FindIterable<Document> iterable = collection.find(query); iterable = addField(iterable,fields); iterable = addSort(iterable,sort); iterable = addPageInfo(iterable,page); cursor = iterable.iterator(); while (cursor.hasNext()) { Document document = cursor.next(); T t = mongoConverter.read(clazz, document); list.add(t); } } finally { if (cursor != null) { cursor.close(); } } } else { return null; } return list; } private FindIterable<Document> addField(FindIterable<Document> document, String[] fields) { if (fields == null || fields.length <= 0) { return document; } BasicDBObject basicDBObject = new BasicDBObject(); for (String field : fields) { basicDBObject.append(field, 1); } return document.projection(basicDBObjec
mongoutil,esutil
最新推荐文章于 2024-08-01 21:02:03 发布
本文将深入探讨MongoUtil和ESUtil这两个工具库,详细介绍它们在数据操作和管理中的应用,包括如何使用MongoUtil进行高效MongoDB数据操作,以及如何利用ESUtil优化Elasticsearch的数据处理流程。
摘要由CSDN通过智能技术生成