java - MongoDB Java 驱动程序:查询 where d>2,a="ABC",b="AA"
问题描述
这是我在 mongodb 中的示例数据,
{
"a": "",
"b": "",
"c": "",
"d": 0
},
{
"a": "ABC",
"b": "AA",
"c": "12345678",
"d": 1
}
这是我用于构建条件和查找查询的 Java 代码,但我没有从 MongoDb 获取数据。
public Document buildCriteria(String a, String b, String c, String e,
String f, Double d) {
Document criteria = new Document();
if (StringUtils.isNotBlank(a)) {
criteria.append("country", a);
}
if (StringUtils.isNotBlank(b)) {
criteria.append("ccy", b);
}
if (StringUtils.isNotBlank(c)) {
criteria.append("type", c);
}
if (StringUtils.isNotBlank(f)) {
criteria.append("iCode", f);
}
if (StringUtils.isNotBlank(e)) {
criteria.append("aNumber", e);
}
if (null != d) {
criteria.append("d", new Document("$gt", d));
}
return criteria;
}
Finderable<Document> findDocument = dbName.find(criteria).limit(10);
有人可以帮助我使用 Java 代码根据以下标准获取文档:
d>2, a="ABC", b="AA"
解决方案
这是一个示例,内联注释应该有助于解释如何d>2 and a="ABC" and b="AA"
用 Mongo Java 驱动程序可以理解的术语来表达:
MongoClient mongoClient = ...;
// create a filter consisting of and'ed criteria
Bson filter = Filters.and(
// d>2
Filters.gt("d", 2),
// a="ABC"
Filters.eq("a", "ABC"),
// b="AA"
Filters.eq("b", "AA")
);
MongoCollection<Document> collection = mongoClient.getDatabase("...").getCollection("...");
FindIterable<Document> findDocument = collection.find(filter).limit(10);
注意:您没有明确提及您使用的是什么版本的 Mongo Java 驱动程序,以上代码适用于 3.x 版本。
推荐阅读
- python - Chrome上的“内存不足” - selenium webdriver
- c# - 使用 .NET 5.0 的 ASP.NET Core Web 应用程序:从视图传递到控制器时,IFormFile 始终为空
- wordpress - 从 GitLab 存储库部署原始源代码
- tensorflow - RuntimeError: Unable to create link (name already exists) 使用 Google Colab 保存第二个模型时
- javascript - 未处理的拒绝 (TypeError):error.response 未定义
- memory - 为什么结构在创建时共享相同的地址,而在删除时与创建的地址不同
- powershell - 如何不显示选定的列?
- reactjs - 将两个json数组合并为一个json数组,其中数据将在react js中完全合并为一个Json
- excel - Excel 表之间的组合的 Power Query 是什么?
- javascript - 使用 jquery 验证器插件仅为 2 个十进制数字 + 点 + 逗号设置正则表达式