Spring环境下使用mongodb的高级查询

         ## 基于MongoTemplate 查询mongodb数据

因为MongoTemplate 的查询使用的是Query这个类 所以我们的查询的条件也将写入这个里面 那么基于这个前提下我们的使用Query 将使用到这个类Criteria
首先展示一下我们的数据结构
在这里插入图片描述这是一个工单类类里面有个集合 集合中类还包含了集合类 。首先我们做一个or查询没有这个标签的请升级一下包的版本这里要查询满足状态的工单

query.addCriteria(Criteria.where("records").elemMatch(
new Criteria().orOperator(Criteria.where("state").is(1),
Criteria.where("state").is(2))));
这里就是筛选records集中的类状态只要有个是为1或者2的 就立马返回这个工单。而且通过elemMatch遍历节点你还可以联合查询比如你查这个集合下面的等于包含某个id切状态为1 或者2 的节点的数据可以这样写
		query.addCriteria(Criteria.where("records").
		elemMatch(new Criteria().orOperator(Criteria.where("state").is(2),
		Criteria.where("state").is(1)).and("_id").is("199db263c924ec42")))

这句代码大概意思就是查询这个records集合下的类的状态为 1或者2 并且其中类的id满足这个条件的199db263c924ec42 就返回整个对象
大致上mongodb的集合查询就是这样 还有不懂的可以私信我

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值