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包。如下截圖所示:

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()函數。
