java客户端连接MongoDB数据库的简单使用

1、下载mongoDB的jar包,并引入到工程的CLASSPATH中下载:mongodb2.5驱动包下载

如果使用maven项目,最新的依赖如下:

<dependency>
   <groupId>org.mongodb</groupId>
   <artifactId>mongodb-driver</artifactId>
   <version>3.2.0</version>
</dependency>

需要特别注意的是如果工程不是maven项目而是通过引入jar包的方式,那么在mongdb3.X之后,除了要引入mongo-java-driver之外,还需要手动引入bson和mongo-java-core的两个jar包,因为driver依赖这两个包,而且版本最好要一致,不然会报各种找不到jar包的错误。而如果是工程是maven项目那么就只需要引入mongodb的driver依赖即可,maven会自动去下载bson和mongo-java-core的依赖jar包。如下截图所示:

2、链接mongoDB服务器,并选择数据库
要建立MongoDB的连接,你只要指定要连接到的数据库就可以。这个数据库不一定存在,如果不存在,MongoDB会先为你建立这个库。同时,在连接时你也可以具体指定要连接到的网络地址和端口:
Mongo m = new Mongo();
// 或者
Mongo m = new Mongo( "localhost" );
// 或者
Mongo m = new Mongo( "localhost" , 27017 );
// 或者, to connect to a replica set, supply a seed list of members
Mongo m = new Mongo(Arrays.asList(new ServerAddress("localhost", 27017), 
             new ServerAddress("localhost", 27018), 
             new ServerAddress("localhost", 27019))); 
DB db = m.getDB("mydb" ); 

3、安全验证(可选)

 boolean auth = db.authenticate(userName, password);

4、获取集合列表。每个数据库都存在零个或多个集合,需要时你可以获得他们的列表:

Set<String> colls = db.getCollectionNames();

for (String s : colls) {
    System.out.println(s);
}

5、获得一个集合。要获得某个特定集合,你可以指定集合的名字,并使用getCollection()方法:

DBCollection coll = db.getCollection("blog");

6、插入文档

mongodb存储JSON格式的文档,而在Java中表示这种数据格式的最简便的类就是Map了。MongoDB Java Driver中提供的BasicDBObject就是个Map(它继承自LinkedHashMap并实现DBObject接口),它会将Map中的数据转换成BSON格式传输到mongodb。

BasicDBObject doc = new BasicDBObject();
        doc.put("name", "MongoDB");
        doc.put("type", "database");
        doc.put("count", 1);
        BasicDBObject info = new BasicDBObject();
        info.put("x", 203);
        info.put("y", 102);
        doc.put("info", info);
        coll.insert(doc);

mongodb中每个插入的文档会产生个唯一标识_id。当调用coll.insert(doc);时,driver会检查其中是否有_id字段,如果没有则自动生成ObjectId实例来作为_id的值,这个ObjectId由4部分编码而成:当前时间、机器标识、进程号和自增的整数。insert函数也支持插入文档列表:insert(List list)

7、查询

find函数是查询集合的,它返回的DBCursor是DBObject的迭代器。如下代码:
BasicDBObject query = new BasicDBObject();
query.put("i", 71);
cursor = coll.find(query);
try {
 while(cursor.hasNext()) {
                System.out.println(cursor.next());
   }
} finally {
   cursor.close();
}

8、建立索引

创建索引语句如:coll.createIndex(new BasicDBObject(“i”, 1)); ,其中i表示要索引的字段,1表示升序(-1表示降序)。可以看到,DBObject成为java客户端通用的结构表示。查看索引使用DBCollection.getIndexInfo()函数。

posted @ 2016-01-03 19:24  人生设计师  阅读(4164)  评论(0编辑  收藏  举报