mongodb使用and配合or查询
使用mongodb时,有时需要使用and配合(嵌套)or查询。
实现类似以下sql的语句:
select * from MongoDbTest where status=1 and (userId="abc" or price>=2)
对应的 mongodb语句如下:
db.getCollection("mongoDbTest").find({ "status" : 1, "$and" : [{ "$or" : [{ "userId" : "abcd" }, { "price" : { "$gte" : 2 } }] }] })
代码示例如下:
/**
* mongodb使用and配合or查询。
* 以下相当于 sql:
* select * from MongoDbTest where status=1 and (userId="abc" or price>=2)
*/
public void andOrOperator() {
Criteria criteria = Criteria.where("status").is(1);
Criteria criteria1 = Criteria.where("userId").is("abc");
Criteria criteria2 = Criteria.where("price").gte(2);
Criteria criteria3 = new Criteria().orOperator(criteria1, criteria2);
criteria.andOperator(criteria3);
Query query = Query.query(criteria);
List<MongoDbTest> list = mongoTemplate.find(query, MongoDbTest.class);
System.out.println("MongoDbTest list:" + JSON.toJSONString(list));
}
分类:
其他--mongoDb
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2019-05-05 如何在工作中获得成长?