
[](javascript:void(0)"添加到收藏夹")
Criteria类提供了以下方法,所有这些方法都对应于MongoDB中的运算符:
匹配数组时,若文档中数组个数和顺序不满足要求时,无法进行匹配。 使用$all关键字可以取消该限制。
相当于
相当于
andOperator 解决的是查询的是同一个字段多个约束的问题,会生成 $and *** 作符
相当于
默认情况下,多条件查询一个数组。文档内的数组一个元素满足所有条件,也可以是每个元素只满足一部分条件但加起来满足所有条件。 使用$elemMatch *** 作符表示要求数组中至少一个元素满足所有条件。
案例一:寻找成绩大于80小于90的数组。如果不使用 elemMatch 的话,文档数组中的每个元素只满足一部分条件但加起来满足所有条件即可。
若不使用 elemMatch ,那么60小于90,120大于80, 数组2 也会输出。
得到的数据:
案例二:其中members是一个数组,包含的是每个群组成员的ID,假设要查询ID是2的用户参与的组。
实际的执行语句:
案例三:将 key=area,value=IT 的对象所在的文档筛选出来。
正确案例:
最终输出的原生语句:
错误案例:
内置文档数组默认是一个元素满足所有条件也可以每个元素只满足一部分条件但加起来满足所有条件。
内联数组的两个文档均满足部分的 key=area,value=IT 条件,也可以完成筛选。
最终输出的原生语句:
spring mongodb Criteria中"and"与"andOperator"方法的区别及"$and"如何工作
Spring Data Mongodb的官方文档
java 中使用Criteria 进行mongodb的各种 *** 作 模糊查询 精确查询 等等
Criteria是一种比hql更面向对象的查询方式。Criteria 可使用 Criterion 和 Projection 设置查询条件。可以设置 FetchMode( 联合查询抓取的模式 ) ,设置排序方式,Criteria 还可以设置 FlushModel (冲刷 Session 的方式)和 LockMode。
拓展如下:
Criterion 是 Criteria 的查询条件。Criteria 提供了 add(Criterion criterion) 方法来添加查询条件。
Criterion 接口的主要实现包括: Example 、 Junction 和 SimpleExpression 。而Junction 的实际使用是它的两个子类 conjunction 和 disjunction ,分别是使用 AND 和 OR *** 作符进行来联结查询条件集合。
Criterion 的实例可以通过 Restrictions 工具类来创建,Restrictions 提供了大量的静态方法,如 eq (等于)、 ge (大于等于)、 between 等来方法的创建 Criterion 查询条件(SimpleExpression 实例)。除此之外, Restrictions 还提供了方法来创建 conjunction 和disjunction 实例,通过往该实例的 add(Criteria) 方法来增加查询条件形成一个查询条件集合。
作用如下:
Project 主要是让 Criteria 能够进行报表查询,并可以实现分组。 Project 主要有SimpleProjection 、ProjectionList 和 Property 三个实现。其中SimpleProjection 和ProjectionList 的实例化是由内建的Projections 来完成,如提供的 avg 、count 、max 、min 、sum 可以让开发者很容易对某个字段进行统计查询。
Property 是对某个字段进行查询条件的设置,如通过Porperty.forName(“color”). in(new String[]{“black”,”red”,”write”})则可以创建一个 Project 实例。通过criteria 的 add(Project) 方法加入到查询条件中去。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)