小编介绍一个 MongoDB多个复杂条件查询的demo
--------------------------------------- 方法1 --------------------------------------
Query query = new Query();
Criteria cr = new Criteria();
Criteria cr1 = null;
if (满足条件1) {
cr1 = Criteria.where(MongoConstants.BaseField.MONGO_ID).is("1007737c5fe2480540b99001");
}
Criteria cr2 = null;
if (满足条件2) {
cr2 = Criteria.where(MongoConstants.BaseField.MONGO_ID).is("1007737c5fe2480540b99002");
}
query.addCriteria(cr.orOperator(cr1,cr2));
--------------------------------------- 方法2 --------------------------------------
Query query = new Query();
Criteria cr = new Criteria();
List<Criteria> criteriaList = new ArrayList<>();
Criteria cr1 = Criteria.where("_id").is("1237737c5fe2480540b99aac");
Criteria cr2 = Criteria.where("_id").is("2237737c5fe2480540b99aac");
if (null != cr1) {
criteriaList.add(cr1);
}
if (null != cr2) {
criteriaList.add(cr2);
}
if(criteriaList.size()>0){
Criteria[] criteriaArr = (Criteria[]) criteriaList.toArray(new Criteria[0]);
query.addCriteria(cr.orOperator(criteriaArr));
}
方法1是不推荐,当有n个Criteria 需要n个判断逻辑时,无法满足多条件下的或关系;
方法2是小编推荐的,喜欢的朋友可以拿去,欢迎评论留言,分享你的经验。