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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM