佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > mongodb driver使用代碼詳解

mongodb driver使用代碼詳解

熱門標簽:鐵路電話系統(tǒng) 地方門戶網(wǎng)站 呼叫中心市場需求 網(wǎng)站排名優(yōu)化 服務外包 百度競價排名 Linux服務器 AI電銷

MongoDB 是一個基于分布式文件存儲的數(shù)據(jù)庫。由 C++ 語言編寫。旨在為 WEB 應用提供可擴展的高性能數(shù)據(jù)存儲解決方案。

MongoDB 是一個介于關系數(shù)據(jù)庫和非關系數(shù)據(jù)庫之間的產(chǎn)品,是非關系數(shù)據(jù)庫當中功能最豐富,最像關系數(shù)據(jù)庫的。

0 前言

全是干貨的技術殿堂

文章收錄在我的 GitHub 倉庫,歡迎Star/fork:

Java-Interview-Tutorial

https://github.com/Wasabi1234/Java-Interview-Tutorial

mongodb-driver是mongo官方推出的java連接mongoDB的驅(qū)動包,相當于JDBC驅(qū)動。我們現(xiàn)在來使用mongodb-driver完成對Mongodb的操作。

1 環(huán)境準備

創(chuàng)建工程,并添加以下依賴:

dependency> 
 groupId>org.mongodb/groupId> 
 artifactId>mongodb-driver/artifactId> 
 version>3.10.1/version> 
/dependency>

2 使用mongodb-driver

2.1 查詢所有

@Test 
public void test1() { 
 //創(chuàng)建連接 
 MongoClient client = new MongoClient("192.168.200.128");
 //打開數(shù)據(jù)庫 
 MongoDatabase commentdb = client.getDatabase("commentdb"); 
 //獲取集合 
 MongoCollectionDocument> comment = commentdb.getCollection("comment"); 
 //查詢 
 FindIterableDocument> documents = comment.find(); 
 //查詢記錄獲取文檔集合 
 for (Document document : documents) { 
 System.out.println("_id:" + document.get("_id")); 
 System.out.println("內(nèi)容:" + document.get("content")); 
 System.out.println("用戶ID:" + document.get("userid")); 
 System.out.println("點贊數(shù):" + document.get("thumbup")); }
 //關閉連接 
 client.close(); 
 }
 } 

2.2 根據(jù)_id查詢

每次使用都要用到MongoCollection,進行抽?。?/p>

private MongoClient client; 
private MongoCollectionDocument> comment; 
@Before 
public void init() { 
 //創(chuàng)建連接 
 client = new MongoClient("192.168.200.128"); 
 //打開數(shù)據(jù)庫 
 MongoDatabase commentdb = client.getDatabase("commentdb"); 
 //獲取集合 
 comment = commentdb.getCollection("comment"); 
}
@After 
public void after() { 
 client.close(); 
}
@Test public void test2() { 
 //查詢 
 FindIterableDocument> documents = comment.find(new BasicDBObject("_id", "1")); 
 //查詢記錄獲取文檔集合 
 for (Document document : documents) { 
 System.out.println("_id:" + document.get("_id")); 
 System.out.println("內(nèi)容:" + document.get("content")); 
 System.out.println("用戶ID:" + document.get("userid")); 
 System.out.println("點贊數(shù):" + document.get("thumbup")); 
 } 
}

2.3 新增

@Test public void test3() { 
 MapString, Object> map = new HashMap(); 
 map.put("_id", "6"); 
 map.put("content", "很棒!"); 
 map.put("userid", "9999"); 
 map.put("thumbup", 123); 
 Document document = new Document(map); 
 comment.insertOne(document); 
}

2.4 修改

@Test public void test4() { 
 //修改的條件 
 Bson filter = new BasicDBObject("_id", "6"); 
 //修改的數(shù)據(jù) 
 Bson update = new BasicDBObject("$set", new Document("userid", "8888"));
 comment.updateOne(filter, update); 
}

2.5 刪除

@Test public void test5() { 
 //刪除的條件 
 Bson filter = new BasicDBObject("_id", "6"); 
 comment.deleteOne(filter); 
}

MongoDB優(yōu)勢與劣勢

優(yōu)勢:

1、在適量級的內(nèi)存的MongoDB的性能是非常迅速的,它將熱數(shù)據(jù)存儲在物理內(nèi)存中,使得熱數(shù)據(jù)的讀寫變得十分快。
2、MongoDB的高可用和集群架構(gòu)擁有十分高的擴展性。
3、在副本集中,當主庫遇到問題,無法繼續(xù)提供服務的時候,副本集將選舉一個新的主庫繼續(xù)提供服務。
4、MongoDB的Bson和JSon格式的數(shù)據(jù)十分適合文檔格式的存儲與查詢。

劣勢:

1、 不支持事務操作。MongoDB本身沒有自帶事務機制,若需要在MongoDB中實現(xiàn)事務機制,需通過一個額外的表,從邏輯上自行實現(xiàn)事務。
2、 應用經(jīng)驗少,由于NoSQL興起時間短,應用經(jīng)驗相比關系型數(shù)據(jù)庫較少。
3、MongoDB占用空間過大。

總結(jié)

到此這篇關于mongodb driver使用代碼詳解的文章就介紹到這了,更多相關mongodb driver使用 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Ubuntu 14.04 安裝 MongoDB 及 PHP MongoDB Driver詳細介紹

標簽:湖南 銅川 黃山 仙桃 衡水 蘭州 湘潭 崇左

巨人網(wǎng)絡通訊聲明:本文標題《mongodb driver使用代碼詳解》,本文關鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    西充县| 西平县| 东台市| 米林县| 凯里市| 潼关县| 景谷| 平原县| 岚皋县| 麻城市| 玛沁县| 莱州市| 石阡县| 诸城市| 白朗县| 青阳县| 上犹县| 开江县| 惠水县| 常宁市| 黎川县| 穆棱市| 始兴县| 义马市| 洛扎县| 宜宾县| 沂水县| 沂南县| 富蕴县| 临湘市| 邳州市| 若尔盖县| 屏南县| 鄯善县| 星子县| 县级市| 高雄市| 梨树县| 萍乡市| 华容县| 鹤壁市|