SpringBoot集成MongoDB
pom文件
<!-- 继承Spring boot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
</dependency>
</dependencies>
配置文件:application.properties
spring.data.mongodb.username=username
spring.data.mongodb.password=pwd
spring.data.mongodb.authentication-database=admin
spring.data.mongodb.database=yyy
spring.data.mongodb.port=27017
spring.data.mongodb.host=192.168.200.130
实体类
实体类添加注解@Document与mongodb中的集合对应
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import java.math.BigDecimal;
import java.util.Date;
/**
* APP评论信息
*/
@Data
@Document("comment")
public class Comment {
/**
* id
*/
private String id;
/**
* 用户ID
*/
private Integer authorId;
/**
* 用户昵称
*/
private String authorName;
}
使用时,直接注入mongoTemplate
@Autowired
private MongoTemplate mongoTemplate;
CRUD
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
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.test.context.junit4.SpringRunner;
import java.util.List;
@SpringBootTest(classes = MongoApplication.class)
@RunWith(SpringRunner.class)
public class MongoTest {
@Autowired
private MongoTemplate mongoTemplate;
//添加
@Test
public void testCreate() {
for (int i = 0; i < 10; i++) {
Comment comment = new Comment();
comment.setContent("这是一个评论");
comment.setLikes(20+i);
mongoTemplate.insert(comment);
}
}
//查询一个
@Test
public void testFindOne() {
Comment comment = mongoTemplate.findById("11111", Comment.class);
System.out.println(comment);
}
//条件查询
@Test
public void testQuery() {
// Query query = Query.query(Criteria.where("_id").is("1111111"));
Query query = Query.query(Criteria.where("likes").lt(28));
query.with(Sort.by(Sort.Direction.DESC,"likes"));
Pageable pageable = PageRequest.of(1,3);
query.with(pageable);
List<Comment> comments = mongoTemplate.find(query, Comment.class);
System.out.println(comments);
}
//删除
@Test
public void testDelete(){
mongoTemplate.remove(Query.query(Criteria.where("_id").is("1111111")),Comment.class);
}
//修改
@Test
public void testUpdate(){
Query query = Query.query(Criteria.where("_id").is("11111"));
Update update = new Update().set("content","aaaaa");
mongoTemplate.updateMulti(query,update,Comment.class);
}
}