中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java使用mongodb數據庫的方法

發布時間:2020-08-07 09:49:59 來源:億速云 閱讀:220 作者:小新 欄目:編程語言

這篇文章主要介紹了java使用mongodb數據庫的方法,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

MongoDB是當今非常流行的一款NoSQL數據庫,本文介紹如何使用MongoDB的Java驅動來操作MongoDB。

一、引入MongoDB Java Driver包

如果需要操作MongoDB的Java項目是一個Maven項目,可以在依賴中加上以下的配置。

<dependencies>
    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-java-driver</artifactId>
        <version>2.13.2</version>
    </dependency>
</dependencies>

或者通過直接下載jar包的方式使用,下載地址:mongo-java-driver-2.13.2.jar。

詳細的如何引入MongoDB jar包的方法可以參考官方文檔。

二、連接MongoDB

可以使用MongoClient來連接MongoDB,MongoClient的使用方式如下:

MongoClient mongoClient = new MongoClient("localhost", 27017);
DB db = mongoClient.getDB("mydb");

上面的代碼連接了localhost:27017上MongoDB服務,并指定使用mydb數據庫。連接后便可以對這個數據庫作進一步的操作。

需要指出的是,MongoClient是線程安全的,可以在多線程環境中共享同一個MongoClient。通常來說,一個應用程序中,只需要生成一個全局的MongoClient實例,然后在程序的其他地方使用這個實例即可。

三、認證

可以使用多種方式對連接進行認證,下面介紹兩種方式。

1. 方式一:MongoCredential

MongoCredential類的createCredential方法可以指定認證的用戶名,密碼,以及使用的數據庫,并返回一個MongoCredential對象。其方法的聲明如下:

static MongoCredential createCredential(
String userName, String database, char[] password)

例如:

MongoCredential credential = MongoCredential.createCredential(
"user", "mydb", "password".toCharArray());

上面創建了一個用戶名為user,密碼為password,數據庫為mydb的MongoCredential對象。

將生成MongoCredential的對象作為MongoClient構造函數的參數。由于MongoClient構造函數的為List<MongoCredential>類型,所以需要先構造成一個List再傳遞。

完整的認證的例子如下:

MongoCredential credential = MongoCredential.createCredential(
"user", "mydb", "password".toCharArray()); 
ServerAddress serverAddress = new ServerAddress("localhost", 27017); 
MongoClient mongoClient = new MongoClient(serverAddress, Arrays.asList(credential)); 
DB db = mongoClient.getDB("mydb");

2. 方式二:MongoClientURI

亦可以使用MongoClientURI完成MongoDB的認證,它代表了一個URI對象。MongoClientURI的構造函數接受一個String類型的字符串,這個字符串的格式如下:

mongodb://[username:password@]
host1[:port1][,host2[:port2],…[,hostN[:portN]]][/[database][?options]]

生成的MongoClientURI對象作為MongoClient構造函數的參數,完整的認證例子如下:

String sURI = String.format(
"mongodb://%s:%s@%s:%d/%s", "user", "password", "localhost", 27017, "mydb"); 
MongoClientURI uri = new MongoClientURI(sURI); 
MongoClient mongoClient = new MongoClient(uri); 
DB db = mongoClient.getDB("mydb");

四、獲取一個集合

DBCollection coll = db.getCollection("mycol");

然后可以對指定的集合進行操作,例如,插入,刪除,查找,更新文檔等。

五、插入文檔

例如,一個文檔以Json來表示如下:

{ “name”: “mongo”, “info”: { “ver”: “3.0” } }

現在需要插入到集合mycol中。為了插入到集合中,可以使用BasicDBObject構造一個文檔。

BasicDBObject doc = new BasicDBObject("name", "mongo").append(
"info", new BasicDBObject("ver", "3.0"));
coll.insert(doc);

六、查找文檔

1. 通過findOne查找一個符合條件文檔

通過findOne可以查找一個符合條件的文檔。例如,對于上面的mycol集合,執行以下命令:

DBObject myDoc = coll.findOne();
System.out.println(myDoc);

將輸出mycol集合中的第一個文檔。也可以通過指定findOne的查找參數,來查找符合查找條件的一個文檔。

2. 通過find查找所有符合條件的文檔

find用來查找符合條件的文檔,它返回一個DBCursor對象,通過遍歷DBCursor對象,可以獲得所有符合查找條件的文檔。

為了說明和測試,我們先插入一批以下格式的文檔:

{ “i”: value }
for (int i=0; i < 100; i++) {
    coll.insert(new BasicDBObject("i", i));
}

find的使用示例如下:

DBCursor cursor = coll.find();
try {
   while(cursor.hasNext()) {
       System.out.println(cursor.next());
   }
} finally {
   cursor.close();
}

會輸出mycol集合中所有的文檔。

也可以指定查找的條件,例如:

BasicDBObject query = new BasicDBObject("i", 71);
DBCursor cursor = coll.find(query);
try {
   while(cursor.hasNext()) {
       System.out.println(cursor.next());
   }
} finally {
   cursor.close();
}

對于查找條件中包括$操作符的情形,例如以下一條mongo shell命令:

db.coll.find({i: {$gte: 50}});

可以使用DBObject生成查找條件,

// find all where i >= 50
BasicDBObject query = new BasicDBObject("i", new BasicDBObject("$gte", 50));
DBCursor cursor = coll.find(query);
try {
    while (cursor.hasNext()) {
        System.out.println(cursor.next());
    }
} finally {
    cursor.close();
}

七、更新文檔

BasicDBObject query = new BasicDBObject("i", 70);
BasicDBObject up = new BasicDBObject("$set", new BasicDBObject("i", 100));
coll.update(query, up);

上面的語句將i為70的文檔更新i的值等于100。

與我們常用的更新文檔的mongo語句一樣,DBCollection還包含了save,findAndModify等更新文檔的方法,其使用方法在此不再贅述,可以參考API說明文檔即可。

八、刪除文檔

可以通過生成一個DBObject對象來刪除指定的文檔,例如:

BasicDBObject query = new BasicDBObject("i", 71);
coll.remove(query);

上面的語句刪除i為71的文檔。

感謝你能夠認真閱讀完這篇文章,希望小編分享java使用mongodb數據庫的方法內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

建昌县| 甘泉县| 徐汇区| 普定县| 盐津县| 习水县| 滦平县| 临沧市| 龙口市| 洱源县| 依安县| 阳朔县| 正定县| 岱山县| 蒙山县| 仁布县| 油尖旺区| 赞皇县| 邵武市| 冕宁县| 榆中县| 黑龙江省| 商城县| 德令哈市| 澄城县| 英超| 兴仁县| 鹤壁市| 闸北区| 水富县| 潢川县| 报价| 邻水| 深州市| 平昌县| 翁牛特旗| 东兰县| 忻州市| 开江县| 海淀区| 巴东县|