使用MongoDB连接池MongoOptions来进行连接 以及相关方法的调用

//获得驱动地址(这里的驱动 写入了配置文件中)
String serverAddressStr = Configure.getInstance().getProperty("SERVER_ADDRESSES");
log.debug("serverAddressStr:" + serverAddressStr); 如果需要连接的MongoDB为多个,则用逗号分隔开,加入集合中以便后续使用
String[] serverAddressArray = serverAddressStr.split(",");
for (String address : serverAddressArray) {
log.debug("address:" + address);
addresslist.add(new ServerAddress(address));
}
//声明MongoOptions对象
MongoOptions options = new MongoOptions();
//autoConnectRetry方法用于在连接失败后是否重新连接,可写成配置项
String autoConnectRetry = Configure.getInstance().getProperty("AUTO_CONNECT_RETRY");
if (StringUtils.isNotEmpty(autoConnectRetry)) {
options.autoConnectRetry = Boolean.valueOf(autoConnectRetry);
}
//设置连接池的大小也可写成配置项 方便以后调整 使用的是autoConnectRetry方法
String connectionsPerHost = Configure.getInstance().getProperty("CONNECTIONS_PER_HOST");
if (StringUtils.isNotEmpty(connectionsPerHost)) {
options.connectionsPerHost = Integer.valueOf(connectionsPerHost);
}
//线程队列
String threadsAllowedToBlockForConnectionMultiplier = Configure.getInstance().getProperty("THREAD_ALLOWED");
log.debug("[THREAD_ALLOWED]:" + threadsAllowedToBlockForConnectionMultiplier);
if (StringUtils.isNotEmpty(threadsAllowedToBlockForConnectionMultiplier)) {
options.threadsAllowedToBlockForConnectionMultiplier = Integer.valueOf(threadsAllowedToBlockForConnectionMultiplier);
}
//最大阻塞时间
String connectTimeout = Configure.getInstance().getProperty("CONNECT_TIME_OUT");
log.debug("[CONNECT_TIME_OUT]:" + connectTimeout);
if (StringUtils.isNotEmpty(connectTimeout)) {
options.connectTimeout = Integer.valueOf(connectTimeout);
}
// 被阻塞线程从连接池获取连接的最长等待时间(ms)
// options.maxWaitTime = 12000;
String maxWaitTime = Configure.getInstance().getProperty("MAX_WAIT_TIME");
log.debug("[MAX_WAIT_TIME]:" + maxWaitTime);
if (StringUtils.isNotEmpty(maxWaitTime)) {
options.maxWaitTime = Integer.valueOf(maxWaitTime);
}
// 是否答应驱动从次要节点读取数据,默认为false
String slaveOk = Configure.getInstance().getProperty("SlAVE_OK");
log.debug("[SlAVE_OK]:" + slaveOk);
if (StringUtils.isNotEmpty(slaveOk)) {
options.slaveOk = Boolean.valueOf(slaveOk);
}

 从某个中按照字段查找相应数据 并放入集合中

public DBObject findOne(String collectionName,String keystr,String value){
DB db = this.getDB();
DBCollection collection = db.getCollection(collectionName);
DBObject dbObject;
try {
dbObject = collection.findOne(new BasicDBObject(keystr, value));
log.debug("dbObject1:" + dbObject);
if (dbObject == null) {
db = this.switchCluster().getDB();
collection = db.getCollection(collectionName);
dbObject = collection.findOne(new BasicDBObject(keystr, value));
log.debug("dbObject1-2:" + dbObject);
}
} catch (MongoException e) {
db = this.switchCluster().getDB();
collection = db.getCollection(collectionName);
dbObject = collection.findOne(new BasicDBObject(keystr, value));
log.debug("dbObject2:" + dbObject);
}
return dbObject;
}

  前台通过DBCollection 根据名称获取相应的value 然后加入list中~

 	public List<DBObject> getValue(List<String> columnNames) {

  db = MongoDB.getInstance().getDB();
DBCollection collection = db.getCollection("labels");
List<DBObject> list = new ArrayList<DBObject>();
BasicDBList dbList = new BasicDBList();
dbList.addAll(columnNames);
DBObject inObj = new BasicDBObject("$in", dbList);
DBCursor cursor = collection.find(new BasicDBObject("column_name", inObj));
DBObject dbObj = null;
while (cursor.hasNext()) {
dbObj = cursor.next();
list.add(dbObj);
}
return list;

MongoDB项目中常用方法的更多相关文章

  1. 项目中常用方法总结(将将DataTable数据集映射到实体对象)【转】

    本篇把项目中用到的一些通用方法总结出来, 这些方法因为经常需要在项目中用到,所以把它们归纳在一起, 形成一个.dll 文件是一个理想的选择. 这样也便于日后缩短开发周期. 一. 把一个DataGrid ...

  2. MongoDB在实际项目中的使用

    MongoDB简介 MongoDB是近些年来流行起来的NoSql的代表,和传统数据库最大的区别是支持文档型数据库. 当然,现在的一些数据库通过自定义复合类型,可变长数组等手段也可以模拟文档型数据库. ...

  3. 使用MongoDB在项目中实际运用

    一.MongoDB,一个数据库,我们怎么去使用它呢?我们首先了解一下什么是MongoDb 官网的介绍是:MongoDB是专为可扩展性,高性能和高可用性而设计的数据库.它可以从单服务器部署扩展到大型.复 ...

  4. .Net Core ORM选择之路,哪个才适合你 通用查询类封装之Mongodb篇 Snowflake(雪花算法)的JavaScript实现 【开发记录】如何在B/S项目中使用中国天气的实时天气功能 【开发记录】微信小游戏开发入门——俄罗斯方块

    .Net Core ORM选择之路,哪个才适合你   因为老板的一句话公司项目需要迁移到.Net Core ,但是以前同事用的ORM不支持.Net Core 开发过程也遇到了各种坑,插入条数多了也特别 ...

  5. Java enum枚举在实际项目中的常用方法

    在项目实际开发过程中,经常会遇到对某些固定的值.字典项的定义的需求,很多项目经常使用常量来定义,其实在jdk1.5就已经引入了枚举,使用枚举可以更好的解决这类需求,本文主要记录枚举的优势以及经常在项目 ...

  6. NoSql非关系型数据库之MongoDB应用(三):MongoDB在项目中的初步应用

    业精于勤,荒于嬉:行成于思,毁于随. 我们可以结合相关的IDE做一个简单的增删改查了,实现MongoDB在项目中的初步应用. 前提是安装了MongoDB服务和MongoDB可视化工具,没有安装的可以点 ...

  7. Git Bash+EGit在项目中配合使用最常用方法总结(根据场景使用)

    最近在项目中使用Git进行代码管理,之前一直用SVN进行管理,现在谈一谈Git在项目中如何与EGit插件配合使用,高效同步开发. 使用过SVN一段时间的人,初识Git一定感觉很别扭,发现会遇到各种各样 ...

  8. Mongo基础使用,以及在Express项目中使用Mongoose

    MongoDB的基本使用 MongoDB特点: 使用BSON存储数据 支持相对丰富的查询操作(相对其他nosql数据库) 支持索引 副本集(支持多个实例/多个服务器运行同个数据库) 分片(数据库水平扩 ...

  9. 在WebStorm环境中给nodejs项目中添加packages

    照前文 http://www.cnblogs.com/wtang/articles/4133820.html  给电脑设置了WebStorm的IDE的nodejs开发环境.新建了个express的网站 ...

随机推荐

  1. NOIP2016 D2T1 組合數問題(problem)

    题目描述 组合数C(n,m)表示的是从n个物品中选出m个物品的方案数.举个例子,从(1,2,3) 三个物品中选择两个物品可以有(1,2),(1,3),(2,3)这三种选择方法.根据组合数的定 义,我们 ...

  2. codevs 1704 卡片游戏

    题目描述 Description 桌面上有一叠牌,从第一张牌(即位于顶面的牌)开始从上往下依次编号为1~n.当至少还剩两张排时进行一下操作:把第一张牌扔掉,然后把新的第一张牌放到整叠牌的最后.输入n. ...

  3. CUDA学习笔记(一)【转】

    CUDA编程中,习惯称CPU为Host,GPU为Device.编程中最开始接触的东西恐怕是并行架构,诸如Grid.Block的区别会让人一头雾水,我所看的书上所讲述的内容比较抽象,对这些概念的内容没有 ...

  4. pip使用报错【cannot import name HTTPSHandler】

    python2.7,报错如下: Traceback (most recent call last): File "/usr/local/bin/pip", line 9, in & ...

  5. asp.net如何确定是哪些控件验证失败

    Page.Validate("FeedBack"); if (!Page.IsValid) { foreach (IValidator validator in Validator ...

  6. 当用GridView导出Execl的时候,会发生只能在执行 Render() 的过程中调用 RegisterForEventValidation的错误

    当用GridView导出Execl的时候,会发生只能在执行 Render() 的过程中调用 RegisterForEventValidation的错误提示. 有两种方法可以解决以上问题: 1.修改we ...

  7. 未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项

    Win7 64位 IIS未能加载文件或程序集"System.Data.SQLite"或它的某一个依赖项 未能加载文件或程序集"System.Data.SQLite&quo ...

  8. linux库之pam

    http://www.ibm.com/developerworks/cn/linux/l-pam/http://docs.oracle.com/cd/E19253-01/819-7056/ch3pam ...

  9. shell脚本实例-游戏脚本

    http://bbs.chinaunix.net/thread-3580033-1-1.html shell游戏收集贴 #!/bin/bash # Tetris Game #APP declarati ...

  10. oracle进程

    http://blog.csdn.net/leshami/article/details/5529239 Oracle实例和Oracle数据库(Oracle体系结构) 几类进程:用户进程,服务进程,后 ...