0115 springboot template方式操作mongodb
前言
redis效能基準是10w次讀寫/秒;
但是不適用於下面的場景:
需要快取,但是經常需要統計,分析和查詢。
這種場景適合使用Mongodb;
他是最接近關聯式資料庫的NOSQL;
mongodb介紹
C++語言編寫,基於分散式檔案儲存的開源資料庫系統,在負載高的時候,可以新增更多的節點,保證伺服器效能。可擴充套件高效能的資料儲存方案。
mongodb把資料儲存為一個文件,資料結構是鍵值對,欄位值還可以包含其他的文件,陣列等;
安裝mongodb
我的是mac電腦,簡單記錄一下安裝和使用步驟;
- brew cask install mongodb
- 設定path ;
- mongo 連線mongodb
- use database_name 建立資料庫
配置
依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.39</version>
</dependency>
屬性配置
spring.data.mongodb.host=127.0.0.1
spring.data.mongodb.username=spring
spring.data.mongodb.password=123456
spring.data.mongodb.port=27017
spring.data.mongodb.database=springboot
MongoTemplate
可以直接透過MongoTemplate操作mongodb;
程式碼
package com.springbootpractice.demo.mongodb.service;
import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;
import com.springbootpractice.demo.mongodb.dao.entity.User;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 說明:mongodb操作程式碼
* @author carter
* 建立時間: 2020年01月15日 3:02 下午
**/
@Service
public class UserService {
private final MongoTemplate mongoTemplate;
public UserService(MongoTemplate mongoTemplate) {
this.mongoTemplate = mongoTemplate;
}
public void saveUser(User user) {
mongoTemplate.save(user);
}
public DeleteResult deleteUser(Long id) {
Query query = Query.query(Criteria.where("id").is(id));
return mongoTemplate.remove(query, User.class);
}
public List<User> findUser(String userName, String note, int skip, int limit) {
final Criteria criteria = Criteria.where("userName")
.regex(userName)
.and("note")
.regex(note);
Query query = Query.query(criteria)
.limit(limit)
.skip(skip);
return mongoTemplate.find(query, User.class);
}
public UpdateResult updateUser(Long id, String userName, String note) {
Update update = new Update();
update.set("userName", userName);
update.set("note", note);
Query query = Query.query(Criteria.where("id").is(id));
return mongoTemplate.updateFirst(query, update, User.class);
}
public User getUser(Long id) {
return mongoTemplate.findById(id, User.class);
}
}
測試程式碼
package com.springbootpractice.demo.mongodb;
import com.springbootpractice.demo.mongodb.dao.entity.Role;
import com.springbootpractice.demo.mongodb.dao.entity.User;
import com.springbootpractice.demo.mongodb.service.UserService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.Arrays;
import java.util.stream.IntStream;
@SpringBootTest
class DemoMongodbApplicationTests {
@Autowired
private UserService userService;
@Test
void mongodbTest() {
IntStream.rangeClosed(1, 10).forEach((item) -> {
final long id = System.currentTimeMillis();
userService.saveUser(User.builder().id(id)
.userName("user")
.note("note")
.roles(Arrays.asList(Role.builder().id(id)
.roleName("role" + id)
.note("note" + id)
.build(),
Role.builder().id(id + 1000000)
.roleName("_role" + id)
.note("_note" + id)
.build()
))
.build());
});
userService.findUser("user", "note", 0, 10)
.forEach(System.out::println);
}
}
小結
本篇文章你可以學會:
- mongodb的簡要介紹,安裝;
- springboot的template方式實現mongodb的增刪改查操作;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/75/viewspace-2824754/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SpringBoot 整合 Spring Data Mongodb 操作 MongoDB 詳解Spring BootMongoDB
- SpringBoot實戰分析-MongoDB操作Spring BootMongoDB
- 0115
- SpringBoot 框架MongoDB 簡單的查詢方式Spring Boot框架MongoDB
- mongoDB操作MongoDB
- SpringBoot+ajax踩的坑Error resolving template, template might not exist or might not be accessibleSpring BootError
- MongoDB基本操作MongoDB
- PHP 操作 MongoDBPHPMongoDB
- JavaApi操作MongoDBJavaAPIMongoDB
- Mongodb 管理操作MongoDB
- Go操作MongoDBMongoDB
- React騷操作——jsx遇到template-directiveReactJS
- OpenFaaS實戰之四:模板操作(template)
- MongoDB 整合SpringBoot實踐MongoDBSpring Boot
- MongoDB基礎操作MongoDB
- 【mongoDB】常用操作命令MongoDB
- MongoDB相關操作MongoDB
- SpringBoot與mongodb的結合Spring BootMongoDB
- 如何構建SpringBoot MongoDb RestfulApiSpring BootMongoDBRESTAPI
- SpringBoot實現mongoDB的CRUDSpring BootMongoDB
- mongodb資料庫操作MongoDB資料庫
- mongodb聚合操作記錄MongoDB
- MongoDB 資料庫操作MongoDB資料庫
- MongoDB(7)- 文件插入操作MongoDB
- Mongodb-基礎操作MongoDB
- SpringBoot整合Mongodb文件資料庫Spring BootMongoDB資料庫
- MongoDB的常用Query操作及操作符MongoDB
- Spring Boot中快速操作MongodbSpring BootMongoDB
- spring-data-mongodb常用操作SpringMongoDB
- mongodb批量操作, bulk_write,MongoDB
- C#簡單操作MongoDBC#MongoDB
- MongoDB增刪改查操作MongoDB
- python操作mongodb資料庫PythonMongoDB資料庫
- MongoDB分片叢集常用操作MongoDB
- MongoDB學習之聚合操作MongoDB
- springboot(十一):Spring boot中mongodb的使用Spring BootMongoDB
- springboot 如何使用MongoDB整合 shedlock-springSpring BootMongoDB
- 【MongoDB學習筆記】-使用 MongoDB 進行 CRUD 操作(下)MongoDB筆記