国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java操作MongoDB

Jeffrrey / 1179人閱讀

摘要:也可以修改查到的所有數(shù)據(jù),如下羅貫中三國(guó)演義刪可以刪除查到的一條數(shù)據(jù),如下羅貫中也可以刪除查到的所有數(shù)據(jù)羅貫中里邊還有其他的查詢條件,都是見(jiàn)名知意,不贅述。

之前我們介紹的MongoDB的操作都是在shell命令中寫的,在項(xiàng)目開(kāi)發(fā)時(shí)我們當(dāng)然都是用程序去操作MongoDB的,本文我們來(lái)看看如何用Java代碼操作MongoDB。

本文是MongoDB系列的第十九篇文章,了解前面的文章有助于更好的理解本文:


1.Linux上安裝MongoDB
2.MongoDB基本操作
3.MongoDB數(shù)據(jù)類型
4.MongoDB文檔更新操作
5.MongoDB文檔查詢操作(一)
6.MongoDB文檔查詢操作(二)
7.MongoDB文檔查詢操作(三)
8.MongoDB查看執(zhí)行計(jì)劃
9.初識(shí)MongoDB中的索引
10.MongoDB中各種類型的索引
11.MongoDB固定集合
12.MongoDB管道操作符(一)
13.MongoDB管道操作符(二)
14.MongoDB中MapReduce使用
15.MongoDB副本集搭建
16.MongoDB副本集配置
17.MongoDB副本集其他細(xì)節(jié)
18.初識(shí)MongoDB分片


準(zhǔn)備工作

首先我們需要驅(qū)動(dòng),MongoDB的Java驅(qū)動(dòng)我們可以直接在Maven中央倉(cāng)庫(kù)去下載,也可以創(chuàng)建Maven工程添加如下依賴:


    org.mongodb
    mongodb-driver
    3.5.0

建議通過(guò)Maven來(lái)添加依賴,如果自己下載jar,需要下載如下三個(gè)jar:

1.org.mongodb:bson:jar:3.5.0  
2.org.mongodb:mongodb-driver-core:jar:3.5.0
3.org.mongodb:mongodb-driver:jar:3.5.0

另外,在使用Java操作MongoDB之前,記得啟動(dòng)MongoDB哦~

獲取集合

所有準(zhǔn)備工作完成之后,我們首先需要一個(gè)MongoClient,如下:

MongoClient client = new MongoClient("192.168.248.136", 27017);

然后通過(guò)如下方式獲取一個(gè)數(shù)據(jù)庫(kù),如果要獲取的數(shù)據(jù)庫(kù)本身就存在,直接獲取到,不存在MongoDB會(huì)自動(dòng)創(chuàng)建:

MongoDatabase sang = client.getDatabase("sang");

然后通過(guò)如下方式獲取一個(gè)名為c1的集合,這個(gè)集合存在的話就直接獲取到,不存在的話MongoDB會(huì)自動(dòng)創(chuàng)建出來(lái),如下:

MongoCollection c = sang.getCollection("c1");

有了集合之后,我們就可以向集合中插入數(shù)據(jù)了。

和在shell中的操作一樣,我們可以一條一條的添加數(shù)據(jù),也可以批量添加,添加單條數(shù)據(jù)操作如下:

Document d1 = new Document();
d1.append("name", "三國(guó)演義").append("author", "羅貫中");
c.insertOne(d1);

添加多條數(shù)據(jù)的操作如下:

List collections = new ArrayList();
Document d1 = new Document();
d1.append("name", "三國(guó)演義").append("author", "羅貫中");
collections.add(d1);
Document d2 = new Document();
d2.append("name", "紅樓夢(mèng)").append("author", "曹雪芹");
collections.add(d2);
c.insertMany(collections);

可以修改查到的第一條數(shù)據(jù),操作如下:

c.updateOne(Filters.eq("author", "羅貫中"), new Document("$set", new Document("name", "三國(guó)演義123")));

上例中小伙伴們也看到了修改器要如何使用,不管是$set還是$inc,用法都一致,我這里不再一個(gè)一個(gè)演示。也可以修改查到的所有數(shù)據(jù),如下:

c.updateMany(Filters.eq("author", "羅貫中"), new Document("$set", new Document("name", "三國(guó)演義456")));

可以刪除查到的一條數(shù)據(jù),如下:

c.deleteOne(Filters.eq("author", "羅貫中"));

也可以刪除查到的所有數(shù)據(jù):

c.deleteMany(Filters.eq("author", "羅貫中"));

Filters里邊還有其他的查詢條件,都是見(jiàn)名知意,不贅述。

可以直接查詢所有文檔:

FindIterable documents = c.find();
MongoCursor iterator = documents.iterator();
while (iterator.hasNext()) {
    System.out.println(iterator.next());
}

也可以按照條件查詢:

FindIterable documents = c.find(Filters.eq("author", "羅貫中"));
MongoCursor iterator = documents.iterator();
while (iterator.hasNext()) {
    System.out.println(iterator.next());
}

其他的方法基本都是見(jiàn)名知意,這里不再贅述。

驗(yàn)證問(wèn)題

上面我們演示的獲取一個(gè)集合是不需要登錄MongoDB數(shù)據(jù)庫(kù)的,如果需要登錄,我們獲取集合的方式改為下面這種:

ServerAddress serverAddress = new ServerAddress("192.168.248.128", 27017);
List credentialsList = new ArrayList();
MongoCredential mc = MongoCredential.createScramSha1Credential("readuser","sang","123".toCharArray());
credentialsList.add(mc);
MongoClient client = new MongoClient(serverAddress,credentialsList);
MongoDatabase sang = client.getDatabase("sang");
c = sang.getCollection("c1");

MongoCredential是一個(gè)憑證,第一個(gè)參數(shù)為用戶名,第二個(gè)參數(shù)是要在哪個(gè)數(shù)據(jù)庫(kù)中驗(yàn)證,第三個(gè)參數(shù)是密碼的char數(shù)組,然后將登錄地址封裝成一個(gè)ServerAddress,最后將兩個(gè)參數(shù)都傳入MongoClient中實(shí)現(xiàn)登錄功能。

其他配置

在連接數(shù)據(jù)庫(kù)的時(shí)候也可以設(shè)置連接超時(shí)等信息,在MongoClientOptions中設(shè)置即可,設(shè)置方式如下:

ServerAddress serverAddress = new ServerAddress("192.168.248.128", 27017);
List credentialsList = new ArrayList();
MongoCredential mc = MongoCredential.createScramSha1Credential("rwuser","sang","123".toCharArray());
credentialsList.add(mc);
MongoClientOptions options = MongoClientOptions.builder()
        //設(shè)置連接超時(shí)時(shí)間為10s
        .connectTimeout(1000*10)
        //設(shè)置最長(zhǎng)等待時(shí)間為10s
        .maxWaitTime(1000*10)
        .build();
MongoClient client = new MongoClient(serverAddress,credentialsList,options);
MongoDatabase sang = client.getDatabase("sang");
c = sang.getCollection("c1");

好了,Java操作MongoDB我們就先說(shuō)到這里,小伙伴們有問(wèn)題歡迎留言討論。

參考資料:

1.《MongoDB權(quán)威指南第2版》

更多資料請(qǐng)關(guān)注公眾號(hào):

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/19158.html

相關(guān)文章

  • MongoDB最簡(jiǎn)單的入門教程之四:使用Spring Boot操作MongoDB

    摘要:是一個(gè)輕量級(jí)框架,可以完成基于的應(yīng)用程序的大部分配置工作。本文介紹如何使用操作,通過(guò)代碼在里插入數(shù)據(jù)。首先按照這個(gè)教程的第一篇文章的介紹,在本地搭建好的環(huán)境最簡(jiǎn)單的入門教程之一環(huán)境搭建。 Spring Boot 是一個(gè)輕量級(jí)框架,可以完成基于 Spring 的應(yīng)用程序的大部分配置工作。Spring Boot的目的是提供一組工具,以便快速構(gòu)建容易配置的Spring應(yīng)用程序,省去大量傳統(tǒng)S...

    Lavender 評(píng)論0 收藏0
  • MongoDB 客戶端連接選項(xiàng)

    摘要:原文保持更新及修正基于的客戶端配置選項(xiàng),其它驅(qū)動(dòng)大同小異。連接池中連接的最大使用壽命毫秒。設(shè)置該選項(xiàng)后,客戶端將進(jìn)行以下行為以副本集模式連接,并根據(jù)給定的服務(wù)器發(fā)現(xiàn)副本集的所有成員。該選項(xiàng)可以和配合使用。編解碼器用于對(duì)進(jìn)行編碼和解碼。 原文保持更新及BUG修正:http://kweny.io/mongodb-clien... 基于 MongoDB Java Driver 3.8.1 ...

    yexiaobai 評(píng)論0 收藏0
  • 雙刃劍MongoDB的學(xué)習(xí)和避坑

    摘要:雙刃劍的學(xué)習(xí)和避坑是一把雙刃劍,它對(duì)數(shù)據(jù)結(jié)構(gòu)的要求并不高。第二某些銀行顯示的金額不是實(shí)時(shí)的。第三步創(chuàng)建封裝類的管理類,針對(duì)不同的實(shí)體類,需要配置不同的。 雙刃劍MongoDB的學(xué)習(xí)和避坑 MongoDB 是一把雙刃劍,它對(duì)數(shù)據(jù)結(jié)構(gòu)的要求并不高。數(shù)據(jù)通過(guò)key-value的形式存儲(chǔ),而value的值可以是字符串,也可以是文檔。所以我們?cè)谑褂玫倪^(guò)程中非常方便。正是這種方便給我們埋下了一顆顆...

    everfight 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<