Spring Data MongoDB总结

首先公司项目用的技术是:
SpringCloud+Spring Data MongoDB

Spring-Data-MongoDB的结构位置:
hibernate是传统数据库的ORM框架(Object Relational Mapping对象关系映射,简称,ORM)
mongoDB是nosql的非关系型数据库
mongoDB的ORM框架,有mongoDB官方提供Morphia框架或者spring-data-mongoDB框架

在java程序中使用mongoDB语法首先要引入jar包
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;

1.查询:
使用Query类和Criteria类表达查询:

Criteria类:完全面向对象编程查询方式
Criteria 是一个完全面向对象,可扩展的条件查询API,通过它完全不需要考虑数据库底层如何实现、SQL语句如何编写,是Hibernate框架的核心查询对象。
Hibernate 定义了CriteriaSpecification接口规范用来完成面向对象的条件查询,Criteria 就是CriteriaSpecification的子接口。

Query类:Query是一个查询参数类,封装了查询条件,分页,排序等功能。
实现不规则分页:Query query = new Query().limit(3,5);
时间排序:Query query = new Query().orderby(“create_time”,Sort.DESC);

//首先注入mongoTemplate对象

@Autowired
private MongoTemplate mongoTemplate;

//首先新建查询

Query query = new Query();

//可以在()中写查询条件:

Query query = new Query(Criteria.where("delFlag").is("0"));

//可以在()外写:

Query query = new Query();
query.addCriteria(Criteria.where("sap_no").is(no));

//或

Query query = new Query();
Criteria criteria = Criteria.where("exp_no").is(expNo);
query.addCriteria(criteria);

//模糊查询

 if (!StringUtils.isEmpty(tshareAdvertisement.getAdSupplier())) {
            String regex = "^.*"+tshareAdvertisement.getAdSupplier()+".*$";
            Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
            query.addCriteria(Criteria.where("adSupplier").regex(pattern));
        }

//查找所有

mongoTemplate.findAll(Object.class);

//返回:

return mongoTemplate.find(query, Sample.class);

2.更新
//首先查询出要更新的id

Query query=new Query(Criteria.where("_id").is(id));

//分开写:

Update update = Update.update("要更新的字段", "更新的值");

mongoTemplate.updateFirst(query, update, Object.class);

//可以直接.set

Update update = new Update().set("name",name).set("nationCode",nationCode).set("nationName",nationName).set("location",locationList);

//返回

return mongoTemplate.findAndModify(query, update, Airport.class);

3.删除
其实就是查询+更新

Query query = new Query(Criteria.where("id").is(tshareAdvertisement.getId()));
Update update = new Update().set("delFlag", "1").set("updateTime", new Date());
return mongoTemplate.findAndModify(query, update, TshareAdvertisement.class);
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值