標籤:
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 membersMongo 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()函數。
java用戶端串連MongoDB資料庫的簡單使用