㈠ Mongodb的java driver中的Mongo和MongoClient有什么区别
Java代码收藏代码
//构造方法
//replicaSetSeeds所有Server的地址
//options默认的查询设置
publicMongo(List<ServerAddress>replicaSetSeeds,MongoOptionsoptions)
throwsMongoException{
//设置类变量
_addr=null;
_addrs=replicaSetSeeds;
_options=options;
//应用查询设置
_applyMongoOptions();
//创建TCP连接实例
_connector=newDBTCPConnector(this,_addrs);
//启动数据清理线程
_cleaner=newDBCleanerThread();
_cleaner.start();
}
//应用查询设置
void_applyMongoOptions(){
//是否在SlaveServer上执行查询
if(_options.slaveOk)slaveOk();
//应用默认的写入设置
setWriteConcern(_options.getWriteConcern());
}
//应用默认的写入设置
publicvoidsetWriteConcern(WriteConcernconcern){
_concern=concern;
}
涉及的其他类:
ServerAddress用于保存主机名和所使用的端口的信息
MongoOptions用于保存查询设置(是否在Slave上进行查询,超时设置等)
WriteConcern写入参数设置,包括:Server数量,写入超时设置,是否立即将结果同步到文件系统中
DBTCPConnector表示TCP数据连接,后续文章中将详细介绍。
DBCleanerThread清理线程,每隔一段时间清理各个DB的DBCursor
获取所有数据库的名称
实现如下:
Java代码收藏代码
//获取所有数据库的名称
publicList<String>getDatabaseNames()
throwsMongoException{
//创建表示数据库命令的DBOBject
BasicDBObjectcmd=newBasicDBObject();
cmd.put("listDatabases",1);
//使用admin数据库执行命令并返回结果
CommandResultres=getDB("admin").command(cmd,getOptions());
//有错误的情况下抛出异常
res.throwOnError();
//获取结果中的databases属性,即数据库列表
Listl=(List)res.get("databases");
//遍历databases,将名称保存到一个list中,并返回结果
List<String>list=newArrayList<String>();
for(Objecto:l){
list.add(((BasicDBObject)o).getString("name"));
}
returnlist;
}
涉及的其他类:
BasicDBObject与MongoDB交互时使用的数据结构,实际相当于Java中的Map,或JavaScript中的object
CommandResult操作执行的结果,继承BasicDBObject,提供一些便捷的方法,实际仍然是在DBObject中查询相应的属性。