关于MongoDB的自定义多条件查询OR/AND

以前没接触过MongoDB 最近维护一个MongoDB项目

关于mongodb的自定义条件查询记录一下,主要是OR/AND/模糊查询需要注意一下
业务场景 根据创建人ID,未删除 以及自定义查询条件(name,address)的模糊查询来获取station集合
//2019-01-10获取当前登录人自己建的场站 

BasicDBList queryList = new BasicDBList(); //查询条件集合
BasicDBObject queryObj = new BasicDBObject(); //默认查询条件对象
queryObj.put("createUser", su.getId()); 
queryObj.put("deleteFlag", false);//排除已删除 
queryList.add(queryObj); //默认查询条件存放到查询条件集合
 if (StringUtils.isNotBlank(form.getSearch_v())) {//自定义条件查询 
    BasicDBObject dbObj = new BasicDBObject(); //自定义查询对象
    BasicDBList condList = new BasicDBList(); //自定义条件查询集合
    BasicDBObject condObj1= new BasicDBObject(); //这里注意自定义查询条件不确定是name,还是address,所以分别接收自定义查询条件
    BasicDBObject condObj2= new BasicDBObject(); 
    Pattern pattern = Pattern.compile("^.*"+form.getSearch_v()+".*$",Pattern.CASE_INSENSITIVE); 	//mondodb的模糊查询,类似mysql的like	  				
    condObj1.put("name", pattern); //存放第1个自定义查询条件
    condObj2.put("address", pattern); //存放第2个自定义查询条件
    condList.add(condObj1); //添加自定义查询条件到自定义条件查询集合
    condList.add(condObj2); //添加自定义查询条件到自定义条件查询集合
    dbObj.put("$or", condList); //把自定义查询条件集合转换成自定义查询条件对象,注意这两个条件是或者关系(OR)
    queryList.add(dbObj); //把这个自定义查询条件也放到查询条件集合中
} 
    BasicDBObject dbQuery = new BasicDBObject(); //把查询条件集合转换成查询条件对象
    dbQuery.put("$and",queryList); //这里默认查询条件和自定义查询条件是并且关系(and)
	//至此查询条件对象就封装好了.后面用框架的查询方法即可.
    list = facade.findBy(Station.class,dbQuery);

`

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值