MongoDB 连接

package com.cdel.portal.core.mongo;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.UnknownHostException;
import java.util.List;
import java.util.Properties;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;

public class MongoDBManager {

/**
* 连接池
*/
private static Mongo mg = null;
/**
* you can think it is similar to connection
*/
private static DB db;

// private static final String dbAddress="192.168.190.49";
// private static final int dbPort=27017;
// private static final String dbName="lectureDB";

static{
try {
InputStream is = MongoDBManager.class.getClassLoader().getResourceAsStream("mongDB.properties");
Properties p = new Properties();
p.load(is);

Integer dbPort = Integer.parseInt((String)p.get( "dbPort") );
mg = new Mongo( (String)p.get( "dbAddress") ,dbPort );
db = mg.getDB((String) p.get("dbName") );
is.close();
} catch (Exception e) {
e.printStackTrace();
}

}
public MongoDBManager() throws UnknownHostException, MongoException{

// users = db.getCollection("users");
}

/**
* 根据 集合的名字 得到集合对象
* @param collectionName
* @return
*/
public DBCollection getCollection(final String collectionName ){
return db.getCollection( collectionName);
}

/**
*
* @param dbCollection
* @param dbObject 添加数据
*/

public void AdddOneData(DBCollection dbCollection, DBObject dbObject){
dbCollection.insert( dbObject );
}


/**
*
* @param collection
* @param dbCondition 删除数据的条件
*/
public void remove(DBCollection collection ,DBObject dbCondition ){
collection.remove( dbCondition );
}

/**
* 更新数据
* @param collection
* @param updateCondition 根据这个条件 所要 更新的的数据
* @param updateResult 数据 更新后的结果
*/

public void update(DBCollection collection,DBObject updateCondition ,DBObject updateResult ){

collection.update( updateCondition , updateResult ,false,false );
}

/**
* 根据条件查询 相应的数据
* @param collection
* @return
*/
public List<DBObject> queryByCondition(DBCollection collection,DBObject condition ){
return collection.find(condition).toArray();
}


/**
* 取得查询结果集
* @param collection
* @return
*/
private static DBCursor getResult(DBCollection collection){
return collection.find();
}



// /**
// * 打印结果数据
// * @param description 结果数据相关描述
// * @param recordResult 结果集
// */
// private static void printData(String description,DBCursor recordResult){
// System.out.println(description);
// for(Iterator<DBObject> iter=recordResult.iterator();iter.hasNext();){
// System.out.println(iter.next());
// }
// }
//
// public DB getDb() {
// return db;
// }
//
// public void setDb(DB db) {
// this.db = db;
// }
//
public static void main(String[] args) throws UnknownHostException, MongoException {
MongoDBManager mongoDBUtil = new MongoDBManager();
DBCollection con = mongoDBUtil.getCollection( "col_lecture");

DBObject lectureObject=new BasicDBObject();
lectureObject.put("kcjyID",44 );

lectureObject.put("jyContent","讲义主体部分" );
mongoDBUtil.AdddOneData(con , lectureObject );



// DBObject lectureObject2 = new BasicDBObject();
//
// lectureObject2.put("kcjyID",111 );
// lectureObject2.put("jyContent","讲义主体部分1111" );
//
// con.update( lectureObject , lectureObject2 ,true,true );
//
// mongoDBUtil.update( con , lectureObject, lectureObject2);
//
// mongoDBUtil.remove( con, lectureObject );
// con.remove( lectureObject );
//
//
// List<DBObject> list = mongoDBUtil.queryByCondition(con , lectureObject );
// for( int i=0 ;i<list.size();i++ ){
// DBObject obj = list.get(i);
// System.out.println( obj.get("kcjyID"));
// System.out.println( obj.get("jyContent"));
// }
// printData("删除pig后的所有结果记录为:",getResult(mongoDBUtil.getDb().getCollection("col_lecture")));
}
}


也可以 继承到spring中 。


附件中是自己整理的MongoDB的使用文档,仅供参考
### 如何建立与MongoDB连接 为了成功建立与MongoDB连接,通常需要完成以下几个方面的配置和操作: #### 1. 连接字符串的定义 MongoDB连接字符串是一个 URI 格式的地址,用于指定客户端如何找到并连接MongoDB 实例。标准的连接字符串格式如下所示[^2]: ```plaintext mongodb://[username:password@]host1[:port1][,host2[:port2],...]/[defaultDatabase]?[options] ``` 如果是在本地运行 MongoDB,默认情况下可以使用以下简单的连接字符串: ```javascript const uri = 'mongodb://localhost:27017'; ``` #### 2. 使用 Node.js 或 Python 等编程语言实现连接 以下是通过 JavaScript (Node.js) 和 Python 分别连接 MongoDB 的示例代码。 ##### Node.js 示例 ```javascript // 导入 MongoDB 驱动程序 const { MongoClient } = require('mongodb'); async function main() { const uri = 'mongodb://localhost:27017'; // 替换为实际的连接字符串 const client = new MongoClient(uri); try { await client.connect(); console.log("已成功连接至服务器"); // 执行其他操作... } catch (error) { console.error("无法连接至服务器", error); } finally { await client.close(); // 关闭连接 } } main().catch(console.error); ``` ##### Python 示例 ```python from pymongo import MongoClient def connect_to_mongodb(): uri = "mongodb://localhost:27017" # 替换为实际的连接字符串 client = MongoClient(uri) try: db_list = client.list_database_names() print(f"当前数据库列表: {db_list}") except Exception as e: print(f"发生错误: {e}") connect_to_mongodb() ``` #### 3. Spark 中的 MongoDB 连接 当使用 Apache Spark 处理 MongoDB 数据时,可以通过 `--conf` 参数设置连接选项。例如,在提交 Spark 应用程序时,可以这样指定 MongoDB 输出 URI[^3]: ```bash spark-submit --master local \ --conf "spark.mongodb.input.uri=mongodb://127.0.0.1/test.myCollection?readPreference=primaryPreferred" \ --conf "spark.mongodb.output.uri=mongodb://127.0.0.1/test.myCollection" \ your_spark_job.py ``` #### 4. 常见问题及其解决方法 - **Q:** 如果遇到 “connection refused” 错误怎么办? - **A:** 检查 MongoDB 是否正在运行以及端口是否被防火墙阻止。默认情况下,MongoDB 监听的是 27017 端口[^1]。 - **Q:** 当尝试远程连接时失败该怎么办? - **A:** 修改 MongoDB 配置文件中的绑定 IP 地址 (`bindIp`) 设置,允许外部访问,并确保网络策略支持该请求。 - **Q:** 用户认证失败是什么原因引起的? - **A:** 可能是因为用户名或密码不匹配,或者未启用身份验证模式。确认已在启动 MongoDB 服务前初始化用户角色权限。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值