所以我正在探索如何从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));
那么,这两种方法都是正确的吗?或者它的目的是不同的
答案 0 :(得分:1)
你总是可以选择自己使用旧的笨重的Bson对象,但对于3.2驱动程序,我宁愿选择过滤器和预测助手类。
因此,可以使用某些条件进行简单搜索
collection.find(Filters.eq("myfield", "myvalue"))
仅用于选择某些字段时,您可以附加投影:
collection.find(Filters.eq("myfield", "myvalue"))
.projection(Projections.include("myfield", "anotherfield"))
除了新API的更优雅的代码之外,查询与基于BasicDBObject的调用相同。