MongoDB Java Driver 源码分析(2):com.mongodb.Mongo
Mongo 表示一个数据库实例,可能包含多个 ServerAddress 和多个 DB。
本文将介绍 Mongo 类中的三个重要方法:构造方法,获取所有数据库的名称,通过名称获取指定的数据库
构造方法
实现如下:
涉及的其他类:
BasicDBObject 与 MongoDB 交互时使用的数据结构,实际相当于 Java 中的 Map,或 JavaScript 中的 object
CommandResult 操作执行的结果,继承 BasicDBObject,提供一些便捷的方法,实际仍然是在 DBObject 中查询相应的属性。
获取指定数据库的引用
实现如下:// 通过名称获取指定的数据库public DB getDB( String dbname ){ // _dbs 是一个用于缓存结果的 Map (名称 => DB) // 先在缓存中查询以节省时间 DB db = _dbs.get( dbname ); if ( db != null ) return db; // 缓存中不存在,则创建新的 DB 实例 db = new DBApiLayer( this , dbname , _connector ); DB temp = _dbs.putIfAbsent( dbname , db ); if ( temp != null ) return temp; return db;}
涉及的其他类:
DBApiLayer 该类继承 DB 类。实现底层的 DB 操作,通过 Mongo 对象间接调用。将在后续的文章中进行详细的介绍。