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

溫馨提示×

溫馨提示×

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

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

SpringBoot中對MongoDB的基本操作是怎樣的

發布時間:2021-09-29 11:33:28 來源:億速云 閱讀:151 作者:柒染 欄目:大數據

本篇文章為大家展示了SpringBoot中對MongoDB的基本操作是怎樣的,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

SpringBoot 中對 MongoDB的基本操作

Database 庫的創建

首先 在MongoDB 操作客戶端 Robo 3T 中 創建數據庫:

SpringBoot中對MongoDB的基本操作是怎樣的

增加用戶User:

SpringBoot中對MongoDB的基本操作是怎樣的

創建 Collections 集合(類似mysql 中的 表):

SpringBoot中對MongoDB的基本操作是怎樣的

后面我們大部分都是基于創建的Collection “collectiondemo”操作的。

依賴包
  <dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-mongodb</artifactId>
			<version> 2.1.7.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
			<version> 2.1.7.RELEASE</version>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
			<version> 2.1.7.RELEASE</version>
		</dependency>
	</dependencies>
SpringBoot 中 application.properties 文件配置
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=mongodemo
spring.data.mongodb.username=login
spring.data.mongodb.password=login
MongoDB 中的 增刪改查 操作

定義 MongoTemplate

	 @Autowired
	private MongoTemplate mongoTemplate;

	private static String COLLECTION_DEMO = "collectiondemo";

基于 mongoTemplate 操作

添加數據
   @PostMapping("/insertDocument")
	public void insertDocument(String document) {
		//獲取集合
		MongoCollection<Document> collection = mongoTemplate.getCollection(COLLECTION_DEMO);
		Document parse = Document.parse(document);
		//插入文檔
		collection.insertOne(parse);
	}

postman 測試參數:

SpringBoot中對MongoDB的基本操作是怎樣的

在 Robo 中 可以查詢到:

SpringBoot中對MongoDB的基本操作是怎樣的

添加數據成功 ,其中 ObjectId是一個12字節的 BSON 類型字符串, 由

SpringBoot中對MongoDB的基本操作是怎樣的

組成

插入數據
	@PutMapping("/updateDocument")
	public Long updateDocument(String queryDocument, String ducument) {
		MongoCollection<Document> collection = mongoTemplate.getCollection(COLLECTION_DEMO);
		BasicDBObject queryParse = BasicDBObject.parse(queryDocument);
		BasicDBObject parse = BasicDBObject.parse(ducument);
		UpdateResult result = collection.updateOne(queryParse, new BasicDBObject("$set",parse));
		return result.getModifiedCount();
	}

輸入參數:

SpringBoot中對MongoDB的基本操作是怎樣的

可以看到:

SpringBoot中對MongoDB的基本操作是怎樣的

但有個問題,當參數中 key 在 mongodb 不存在時,會自己創建:

SpringBoot中對MongoDB的基本操作是怎樣的

之前mongodb并沒有 age 字段,現在可以看到:

SpringBoot中對MongoDB的基本操作是怎樣的

這可能對有些業務場景,對key要求嚴格的 就無法通過這個滿足條件 ,此時mongodb 中 可以用$exists 解決:

	@PutMapping("/updateDocumentOnlyHave")
	public Long updateDocumentOnlyHave(String id, String ducument) {
		MongoCollection<Document> collection = mongoTemplate.getCollection(COLLECTION_DEMO);
		BasicDBObject parse = BasicDBObject.parse(ducument);
		Set<String> keySet = parse.keySet();
		BasicDBObject dbObject = new BasicDBObject();
		dbObject.put("id",id);
		for (String key : keySet) {
			dbObject.put(key, new BasicDBObject("$exists",true));
		}
		UpdateResult result = collection.updateOne(dbObject, new BasicDBObject("$set",parse));
		return result.getModifiedCount();
	}
查詢數據
	@GetMapping("/listDocuments")
	public List<Document> findDocuments() {
		MongoCollection<Document> collection = mongoTemplate.getCollection(COLLECTION_DEMO);
		FindIterable<Document> documents = collection.find();
		List<Document> listDocuments = new ArrayList<>();
		for (Document document : documents) {
			listDocuments.add(document);
		}
		return listDocuments;
	}
刪除數據
  @DeleteMapping("/deleteDocument")
	public DeleteResult deleteDocument(String name) {
		MongoCollection<Document> collection = mongoTemplate.getCollection(COLLECTION_DEMO);
		DeleteResult result = collection.deleteOne(new BasicDBObject("name", name));
		return result;
	}

上述內容就是SpringBoot中對MongoDB的基本操作是怎樣的,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

孝昌县| 淮北市| 荃湾区| 宁津县| 安宁市| 和林格尔县| 东安县| 盘锦市| 凤翔县| 福清市| 清新县| 娄烦县| 濮阳县| 乌鲁木齐县| 平塘县| 万荣县| 新乡县| 岳阳市| 定边县| 寻甸| 东至县| 灵宝市| 耒阳市| 温宿县| 晋城| 中阳县| 台湾省| 宝坻区| 中卫市| 双柏县| 宜章县| 昌黎县| 兰州市| 青龙| 祁东县| 顺义区| 平安县| 珠海市| 土默特左旗| 横山县| 涿鹿县|