日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java(基于springboot项目或maven项目均可) 操作mongodb

發布時間:2024/9/5 编程问答 27 如意码农
生活随笔 收集整理的這篇文章主要介紹了 java(基于springboot项目或maven项目均可) 操作mongodb 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、引入mongodb 坐標依賴
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.2.2</version>
</dependency>
二、創建mongodb 配置文件 mongodb.properties
添加如下內容
mymongodb.host= 10.0.0.2
mymongodb.port= 27017
mymongodb.dbname= articledb

   三、創建mongodb 工具類

import com.mongodb.client.gridfs.GridFSBucket;
import com.mongodb.client.gridfs.GridFSBuckets;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component; /**
* @Description: [mongodb工具類]
* @Author: Jingqi Qu
* @CreateDate: 2021/12/21 17:17
* @UpdateUser:
* @UpdateDate:
* @Version: [v1.0]
*/
@Configuration
@ConfigurationProperties(prefix = "mymongodb", ignoreUnknownFields = false)
@PropertySource("classpath:config/mongodb.properties")
@Data
@Component
public class MongoDBUtil { private String host;
private int port;
private String dbname;
private static MongoDatabase mongoDatabase; public MongoClient getMongoClient(){//創建方法不同版本依賴可能不同,查看源碼即可 此處使用 host +默認端口號創建
     //創建client

MongoClient mongoClient = new MongoClient(host);
return mongoClient; }
public MongoDatabase getMongoDatabase(){
MongoClient mongoClient = getMongoClient();

mongoDatabase = mongoClient.getDatabase(dbname);
return mongoDatabase; } // 使用Grid 鏈接指定數據庫
public GridFSBucket getGrid(){
MongoClient mongoClient = getMongoClient();
MongoDatabase mongoDatabase = mongoClient.getDatabase(dbname);
GridFSBucket gridFSBucket = GridFSBuckets.create(mongoDatabase);
return gridFSBucket; } }

四、使用mongodbapi操作mongodb數據庫

import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoIterable;
import com.mongodb.client.gridfs.GridFSBucket;
import com.mongodb.client.gridfs.GridFSUploadStream;
import com.mongodb.client.gridfs.model.GridFSUploadOptions;
import com.mongodb.client.model.Filters;
import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;
import org.bson.Document;
import org.bson.types.ObjectId;
import org.junit.Test; import javax.servlet.http.HttpServletResponse; import java.io.*;
import java.util.HashMap;
import java.util.Map; /**
* @Description: [一句話描述該類的功能]
* @Author: Jingqi Qu
* @CreateDate: 2021/12/21 17:43
* @UpdateUser:
* @UpdateDate:
* @Version: [v1.0]
*/ public class TestMongo { // 查看mongodb所有數據庫
@Test
public void getAllDB(){
MongoClient mongoClient = MongoDBUtil.getMongoClient();
MongoIterable<String> mongoIterable = mongoClient.listDatabaseNames();
for(String db:mongoIterable){
System.out.println(db);
}
} // 查看指定數據庫下的所有集合
@Test
public void getCollections(){
MongoDatabase db = MongoDBUtil.getMongoDatabase();
MongoIterable<String> nameList = db.listCollectionNames();
for(String collectionsName :nameList){
System.out.println(collectionsName);
}
} // 創建集合
@Test
public void createCollections(){
MongoDatabase db = MongoDBUtil.getMongoDatabase();
db.createCollection("threeCollection"); }
// 刪除集合
@Test
public void removeCollections(){
MongoDatabase db = MongoDBUtil.getMongoDatabase();
MongoCollection<Document> collection = db.getCollection("threeCollection");
collection.drop(); } // 根據集合名獲取所有文檔
@Test
public void findDocumentByCollectionName(){
MongoDatabase db = MongoDBUtil.getMongoDatabase();
MongoCollection<Document> collection = db.getCollection("threeCollection");
FindIterable<Document> doc = collection.find();
for(Document document :doc){
System.out.println(document);
} }
// 插入文檔
@Test
public void insertDocumentByCollectionName(){
MongoDatabase db = MongoDBUtil.getMongoDatabase();
MongoCollection<Document> collection = db.getCollection("threeCollection");
Document doc = new Document();
Map<String,String> map = new HashMap<String, String>();
map.put("class","222");
//默認是個ObjectId對象,此處設置為string,否則無法更新
doc.append("_id","44444");
doc.append("name","tom3");
doc.append("age","68");
collection.insertOne(doc); }
// 更新文檔
@Test
public void updateDocumentByCollectionName(){
MongoDatabase db = MongoDBUtil.getMongoDatabase();
MongoCollection<Document> collection = db.getCollection("threeCollection");
Document doc = new Document("class","888");
UpdateResult a = collection.updateOne(Filters.eq("class","222"),new Document("$set",doc));
System.out.println(a); } // 刪除文檔
@Test
public void removeDocumentByCollectionName(){
MongoDatabase db = MongoDBUtil.getMongoDatabase();
MongoCollection<Document> collection = db.getCollection("threeCollection");
DeleteResult res = collection.deleteOne(Filters.eq("_id","61c2c911136fb13d507f5b4f"));
System.out.println(res); } // MongoDB GridFS 存圖片
@Test
public void test(){
GridFSBucket grid = MongoDBUtil.getGrid();
GridFSUploadOptions options = new GridFSUploadOptions();
options.chunkSizeBytes(358400);//定義chunk大小
GridFSUploadStream stream = grid.openUploadStream("test.png",options); //創建上傳流
InputStream in = null;
try{
File file = new File("F:\\項目資料\\圖片\\banner1.png"); in = new FileInputStream(file);
int tempbyte; while ((tempbyte = in.read()) != -1) {
stream.write(tempbyte);
}
in.close(); stream.close();
System.out.println("文件id:"+stream.getFileId());
}catch (IOException e){
e.printStackTrace();
} } // MongoDB GridFS 跟據文檔id取圖片
@Test
public void test2(HttpServletResponse resp){
GridFSBucket grid = MongoDBUtil.getGrid();
GridFSUploadOptions options = new GridFSUploadOptions();
try{
OutputStream out = resp.getOutputStream();
grid.downloadToStream(new ObjectId("61c305e0136fb133fcf3f247"),out); }catch (IOException e){ } }
}
五、推薦使用圖形化工具 Robo 3T
下載地址 https://robomongo.org/download/
一鍵安裝非常方便這里不贅述
操作界面如下:


總結

以上是生活随笔為你收集整理的java(基于springboot项目或maven项目均可) 操作mongodb的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。