主頁 > 知識(shí)庫 > mongodb driver使用代碼詳解

mongodb driver使用代碼詳解

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

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

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

0 前言

全是干貨的技術(shù)殿堂

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

Java-Interview-Tutorial

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

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

1 環(huán)境準(zhǔ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("點(diǎn)贊數(shù):" + document.get("thumbup")); }
 //關(guān)閉連接 
 client.close(); 
 }
 } 

2.2 根據(jù)_id查詢

每次使用都要用到MongoCollection,進(jìn)行抽?。?/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("點(diǎn)贊數(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)勢(shì)與劣勢(shì)

優(yōu)勢(shì):

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

劣勢(shì):

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

總結(jié)

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

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

標(biāo)簽:湖南 銅川 黃山 仙桃 衡水 蘭州 湘潭 崇左

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

    • 400-1100-266