当前位置 : 主页 > 编程语言 > c++ >

MongoDB工具类

来源:互联网 收集:自由互联 发布时间:2021-06-30
MongoDBTools.java package meng.study.mongo.mongodb;import java.util.ArrayList;import java.util.List;import java.util.Map;import org.bson.Document;import org.json.JSONArray;import com.mongodb.BasicDBObject;import com.mongodb.DB;import com.mo
MongoDBTools.java
package meng.study.mongo.mongodb;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.bson.Document;
import org.json.JSONArray;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.QueryOperators;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;

/**
 * 自己编写的java操作mongdb数据库的查询类
 * 
 * @author mengzhang6
 * @since 2016/07/27
 * @version 1.0
 *
 */
public class MongoDBTools {

	// 单例模式
	private static MongoDBTools UTILS = new MongoDBTools();

	public static MongoDBTools getInstance() {
		return UTILS;
	}

	private Mongo mongo;
	private DB db;
	private DBCollection coll;
	private List
 
   dbos;
	private JSONArray jsonArray;

	/**
	 * 单条件查询
	 * 
	 * @param host
	 *            主机地址
	 * @param port
	 *            端口号
	 * @param dbName
	 *            数据库名称
	 * @param collectionName
	 *            集合名称
	 * @param key
	 *            键
	 * @param value
	 *            值
	 * @return JSONArray
	 */
	public JSONArray getJSONArray(String host, int port, String dbName,
			String collectionName, String key, Object value) {
		try {
			// 连接数据库
			// Mongo mongo = new Mongo("192.168.57.49", 27017);
			mongo = new Mongo(host, port);
			// 打开数据库
			db = mongo.getDB(dbName);
			// 取得集合xxx(若:xxx不存在,mongodb将自动创建该集合)
			coll = db.getCollection(collectionName);
			dbos = coll.find(new BasicDBObject(key, value)).toArray();
			jsonArray = new JSONArray(String.valueOf(dbos));
		} catch (MongoException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (mongo != null)
				mongo.close();
			mongo = null;
			db = null;
			coll = null;
			dbos = null;
		}
		return jsonArray;
	}

	public JSONArray getJSONArray(String host, int port, String dbName,
			String collectionName, String key, Object value, String key2,
			Object value2, String type) {
		try {
			mongo = new Mongo(host, port);
			db = mongo.getDB(dbName);
			coll = db.getCollection(collectionName);
			BasicDBObject b1 = new BasicDBObject(key, value);
			BasicDBObject b2 = new BasicDBObject(key2, value2);
			// 混合条件
			BasicDBObject unitObject = new BasicDBObject().append(
					QueryOperators.AND, new BasicDBObject[] { b1, b2 });
			// 一般不用OR,所以默认AND
			if (type.equals("OR"))
				unitObject = new BasicDBObject().append(QueryOperators.OR,
						new BasicDBObject[] { b1, b2 });
			// 查询
			List
  
    dbos = coll.find(unitObject).toArray(); JSONArray jsonArray = new JSONArray(String.valueOf(dbos)); } catch (MongoException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally { if (mongo != null) mongo.close(); mongo = null; db = null; coll = null; dbos = null; } return jsonArray; } private MongoClient mongoClient; private MongoDatabase mongoDatabase; private MongoCollection
    mongoCollection; private FindIterable
    findIterable; private MongoCursor
    cursor; /** * 单条件查询 * * @param host * @param port * @param dbName * @param collectionName * @param key * @param value * @return org.bson.Document集合 */ public List
   
     getDocumentList(String host, int port, String dbName, String collectionName, String key, Object value) { List
    
      documentList = new ArrayList
     
      (); try { mongoClient = new MongoClient(host, port); mongoDatabase = mongoClient.getDatabase(dbName); mongoCollection = mongoDatabase.getCollection(collectionName); BasicDBObject basicDBObject = new BasicDBObject(key, value); findIterable = mongoCollection.find(basicDBObject); cursor = findIterable.iterator(); while (cursor.hasNext()) { org.bson.Document document = (Document) cursor.next(); documentList.add(document); } } catch (Exception e) { e.printStackTrace(); } finally { cursor.close(); mongoClient.close(); } return documentList; } /** * 双条件查询 * * @param host * @param port * @param dbName * @param collectionName * @param key * @param value * @param key2 * @param value2 * @param type * AND 或 OR * @return */ public List
      
        getDocumentList(String host, int port, String dbName, String collectionName, String key, Object value, String key2, Object value2, String type) { List
       
         documentList = new ArrayList
        
         (); try { mongoClient = new MongoClient(host, port); mongoDatabase = mongoClient.getDatabase(dbName); mongoCollection = mongoDatabase.getCollection(collectionName); BasicDBObject basicDBObject = new BasicDBObject(key, value); BasicDBObject basicDBObject2 = new BasicDBObject(key2, value2); BasicDBObject unitObject = new BasicDBObject().append( QueryOperators.AND, new BasicDBObject[] { basicDBObject, basicDBObject2 }); // 一般不用OR,所以默认AND if (type.equals("OR")) unitObject = new BasicDBObject().append(QueryOperators.OR, new BasicDBObject[] { basicDBObject, basicDBObject2 }); findIterable = mongoCollection.find(unitObject); cursor = findIterable.iterator(); while (cursor.hasNext()) { org.bson.Document document = (Document) cursor.next(); documentList.add(document); } } catch (Exception e) { e.printStackTrace(); } finally { cursor.close(); mongoClient.close(); } return documentList; } /** * 多条件查询 * * @param host * @param port * @param dbName * 数据库 * @param collectionName * 集合名 * @param keyValues * Map
         
          集合 * @param type * OR 或 AND * @return */ public List
          
            getDocumentList(String host, int port, String dbName, String collectionName, Map
           
             keyValues, String type) { List
            
              documentList = new ArrayList
             
              (); try { mongoClient = new MongoClient(host, port); mongoDatabase = mongoClient.getDatabase(dbName); mongoCollection = mongoDatabase.getCollection(collectionName); List
              
                basicDBObjectList = new ArrayList
               
                (); for (String key : keyValues.keySet()) { BasicDBObject b = new BasicDBObject(key, keyValues.get(key)); basicDBObjectList.add(b); } BasicDBObject unitObject = new BasicDBObject().append( QueryOperators.AND, basicDBObjectList); // 一般不用OR,所以默认AND if (type.equals("OR")) unitObject = new BasicDBObject().append(QueryOperators.OR, basicDBObjectList); findIterable = mongoCollection.find(unitObject); cursor = findIterable.iterator(); while (cursor.hasNext()) { org.bson.Document document = (Document) cursor.next(); documentList.add(document); } } catch (Exception e) { e.printStackTrace(); } finally { cursor.close(); mongoClient.close(); } return documentList; } }
               
              
             
            
           
          
         
        
       
      
     
    
   
  
 
maven依赖
 
    
  
   org.mongodb
  
    
  
   mongodb-driver
  
    
  
   3.2.2
  

 
网友评论