Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB Java驱动程序:查询其中d>2,a=“ABC”,b=“AA”_Java_Mongodb_Mongodb Java - Fatal编程技术网

MongoDB Java驱动程序:查询其中d>2,a=“ABC”,b=“AA”

MongoDB Java驱动程序:查询其中d>2,a=“ABC”,b=“AA”,java,mongodb,mongodb-java,Java,Mongodb,Mongodb Java,这是我在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,

这是我在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);

下面是一个示例,内嵌注释应该有助于解释如何用Mongo Java驱动程序可以理解的术语来表达d>2和a=ABC和b=AA:

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);
注意:您没有明确提到您使用的MongoJava驱动程序的版本,上面的代码对3.x版本有效

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