如何查询多个特定字段

时间:2016-05-26 08:08:28

标签: java mongodb mongodb-query mongodb-java

所以我正在探索如何从java查询mongo,我找到了几种不同的查询方式,我不确定我是否遗漏了一些细微差别,因此没有完全理解查询,或者他们是一样的。

到目前为止,我发现,对于java驱动程序v3.2,这个:

collection.find().projection(fields(include("x", "y"), excludeId()))

我被告知这应该有效:

BasicDBobject query = new BasicDBObject("x", x).append("y", y);//This example may not compile, I haven't tried it, I'm more talking about the idea and concept.

此查询将使用find(),findOne(),distinct()等。

        String fields = "averageSpeed";
        coll = db.getCollection(strMongoCollection);
        coll.find(fields, query));

那么,这两种方法都是正确的吗?或者它的目的是不同的

1 个答案:

答案 0 :(得分:1)

你总是可以选择自己使用旧的笨重的Bson对象,但对于3.2驱动程序,我宁愿选择过滤器和预测助手类。

因此,可以使用某些条件进行简单搜索

collection.find(Filters.eq("myfield", "myvalue"))

仅用于选择某些字段时,您可以附加投影:

collection.find(Filters.eq("myfield", "myvalue"))
    .projection(Projections.include("myfield", "anotherfield"))

除了新API的更优雅的代码之外,查询与基于BasicDBObject的调用相同。