1. 导入mongoDb的maven坐标
<!-- 引入mongodb-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
2. 在yml文件中配置mongo路径
spring:
data:
mongodb:
# 无密码
uri: mongodb://ip地址:27017/数据库名
# 有密码
uri:mongodb://用户名:密码@ip地址:27017/数据库名
3. 使用mongoTemplate
使用springboot整合mongoDb的专用客户端接口MongoTemplate来进行操作
mongoTemplate基础使用
@SpringBootTest
class Springboot17MongodbApplicationTests {
@Autowired
private MongoTemplate mongoTemplate;
@Test
void contextLoads() {
Book book = new Book();
book.setId(10);
book.setName("testMongoDB");
book.setType("testMongoDB");
book.setDescription("testMongoDB");
mongoTemplate.save(book);
}
@Test
void find(){
List<Book> all = mongoTemplate.findAll(Book.class);
System.out.println(all);
}
}
mongoTemple 细节查询(复杂查询,分页,排序)
mongoTemplate.find(new Query(Criteria.where("字段").is("值")),entityClass)
关键字Criteria的功能介绍
查询
mongoTemplate | mysql | 含义解释 |
---|---|---|
.is | = | 等于 |
.ne | != | 不等于 |
.gt | > | 大于 |
.gte | >= | 大于等于 |
.lt | < | 小于 |
.lte | <= | 小于等于 |
.regex | ___ | 这里是表达式的方式查询,如果只是一个字符串相当于like |
.in | in | |
.is(null) | is null | 为空 |
.ne(null) | is not null | 不为空 |
单条查询
MongoTemplate.find(new Query(Criteria.where("name").is(name)), User.class);
多条查询
Query query = new Query();
Criteria criteria = new Criteria();
List<Criteria> criteriaList = new ArrayList<>();
criteriaList.add( Criteria.where("name").is(name));
criteriaList.add( Criteria.where("age").gt(age));
....
criteria.andOperator(criteriaList.toArray(new Criteria[0]));
query.addCriteria(criteria);
mongoTemplate.find(new Query(query, User.class);
分页
MongoUtils.find(new Query().skip(跳过多少行).limit(取多少个),User.class);
顺序
MongoUtils.find(new Query().with(Sort.by(Sort.Order.asc("字段名"))).,User.class);