更新時間:2021-12-29 11:27:40 來源:動力節(jié)點 瀏覽2224次
在數(shù)據(jù)量大,高并發(fā)的情況下可以使用mongodb,另外mongodb可以用來存儲對象
首先看下mongodb和sql概念的一些不同
monogodb內(nèi)的數(shù)據(jù)是以bson(類似于json)的形式存儲,每個文檔都是一個json
1.引入依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
2.添加配置
注意mongodb默認端口號為test
spring:
data:
mongodb:
uri: mongodb://localhost:27017/test
3.創(chuàng)建實體類對應(yīng)一個集合,實體類的一個對象對應(yīng)一條數(shù)據(jù)
@Document("User")//指明實體類對應(yīng)mongodb的哪個集合
public class User{
@Id //加入mongodb時會自動生成id
private Integer Id;
private String name;
private String age;
...省略構(gòu)造器,get/set方法
}
4.MongoTemplate
public class test{
@AutoWired
private MongoTemplate mongoTemplate;
public void test(){
User user=new User();
mongoTemplate.insert(user);//插入數(shù)據(jù),會自動插入到對應(yīng)的集合中
List<User> list=mongoTemplate.findAll(User.class);//查詢集合的所有數(shù)據(jù)
User user=mongoTemplate.findById(id,User.class);//根據(jù)id查詢
Query query=new Query(Criteria.where("name").is("wang").and("age").is("20"));//Query是條件構(gòu)造器,這個條件代表name是wang,age是20
mongoTemplate.find(query,User.class);//條件查詢
mongoTemplate.find(query.skip((curPage-1)*size).limit(size),User.class);//分頁查詢,query.skip((curPage-1)*size).limit(size)表示跳過(當(dāng)前頁-1)*每頁的大小條數(shù)據(jù),輸出size條數(shù)據(jù)
Update update=new Update();
update.set("name","li");
UpdateResult upsert=mongoTemplate.upsert(query,update,User.class);//修改,跟別的不同的是修改需要把修改的內(nèi)容傳遞給一個Update對象
Long count1=upsert.getModifiedCount(); //得到受影響的數(shù)據(jù)數(shù)
DeleteResult remove=mongoTemplate.remove(query,User.class);//刪除
Long count2=remove.getModifiedCount();//得到受影響的數(shù)據(jù)數(shù)
}
}
初級 202925
初級 203221
初級 202629
初級 203743