MongoDB 多条件查询

本文分享了两种在MongoDB中进行多个复杂条件查询的方法。方法1使用直接的条件判断,但不适用于大量条件下的或关系。方法2推荐使用列表存储条件,灵活处理多个或条件,更适用于实际应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

小编介绍一个 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是小编推荐的,喜欢的朋友可以拿去,欢迎评论留言,分享你的经验。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值