use combined and 'and' or query in the mongo

1、 description:  use combined and and or query in the mongo

2、sql query statement:

       select * from deviceInfo  where devId='11010001'  and  (sndStatus=0 or sndCount >= 3);

3、match mongo sql query:

     db.getCollection("deviceInfo").find({ "devId" : '11010001', "$and" : [{ "$or" : [{ "sndStatus" : 0 }, { "sndCount" : { "$gte" : 3 } }] }] })

4、code example:

   /*
    * use combined and and or query in the mongo
    * match mongo sql query:
    * 
     public void queryAndOrOperator() {
   	    Criteria criteria = Criteria.where("devId").is('11010001');
        Criteria orCriteria1 = Criteria.where("sndStatus").is(0);
    	Criteria orCriteria2 = Criteria.where("sndCount").gte(3);
	    Criteria orAllCriteria = new Criteria().orOperator(orCriteria1, orCriteria2);
        criteria.andOperator(orAllCriteria);
        Query query = Query.query(criteria);
        List<MongoDatabaseEntity> queryList = mongoTemplate.find(query, MongoDatabaseEntity.class);
        System.out.println(" query mongo list bases on condition,result is :" + JSON.toJSONString(queryList));
    }

  

 

posted @ 2024-10-03 13:58  东北大亨  阅读(2)  评论(0编辑  收藏  举报