springboot整合mongoDb

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的功能介绍
查询

mongoTemplatemysql含义解释
.is=等于
.ne!=不等于
.gt>大于
.gte>=大于等于
.lt<小于
.lte<=小于等于
.regex___这里是表达式的方式查询,如果只是一个字符串相当于like
.inin
.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);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值