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));
}

浙公网安备 33010602011771号