最近在工作中遇到一个项目在查询mongo数据的时候没有用像MongoTemplate这种工具包,用的是最原生的Bson构建条件方式。对于简单的查询来说还好应付,但是复杂一些的,比如多or、多and 等等这种条件,构建起来太麻烦了,本身也对这种方式不熟悉。今天偶然看到Mongo官方的一个工具可以将我们的查询语句转为Bson的查询语句,在这里做一下记录。
//简单的查询还好应付
Bson bson = Filters.eq("name", "小明");
FindIterable<Document> result = mongoClient.find(bson);
//逻辑处理
// result.XXXXXXXX
//像这种稍微复杂一些的,肾都是疼的。
Bson bson = Filters.and(
Filters.eq("task_id", 1001),
Filters.eq("data_id", 2001),
Filters.eq("type", "TEXT"),
Filters.exists("original", true),
Filters.or(Filters.exists("translate_original", false),
Filters.eq("translate_original", "")));
FindIterable<Document> result = mongoClient.find(bson);
//逻辑处理
// result.XXXXXXXX
-----------------进入正题-----------------
MongoDB Compass
mongo官方的一款mongodb ui可视化管理工具,类似于navcat,不过今天本文重点介绍下查询条件的转换
1).软件界面:
连接上数据库之后,左边一列是我们数据库的一些连接信息和数据库的信息。
2).软件使用:
我们可以在黄色框部分填写我们的查询条件
- 在filter内输入过滤条件
- 在project内输入显示哪些字段(1代表true)
- 在sort内输入按哪个字段排序
- 在collation内输入显示结果数量,skip数值表标跳过前面多少个结果,limit数据表示只显示前面多少个结果
我这里做了一个简单的条件查询例子,效果和预期是一样的。
3).转换为java语句:
①.点击其余选项按钮–>导出为语句
②.右上角选择导出为java语言的查询语句
4).最终效果:
稍作调整,看起来就美观多了!