Mongo Java查询和/或组合

时间:2015-05-14 11:50:12

标签: java mongodb

我需要一个Java驱动程序mongo查询和/或组合 - 对于前 -

假设我有一个集合用户有3个名为a,b,c。

的字段

现在我必须执行查找查询,如 -

user.find({$and :[{"a":"text"},{$or :[{"b":"text"},{"c":"text"}]}]})

这个mongo控制台查询给出了正确的结果。 我如何使用JAVA mongo驱动程序。

请帮忙 提前致谢

1 个答案:

答案 0 :(得分:6)

您可以使用以下查询

DBCollection userCollection = db.getCollection("collection");

BasicDBObject orQuery = new BasicDBObject();
List<BasicDBObject> obj1 = new ArrayList<BasicDBObject>();
obj1.add(new BasicDBObject("a", "text"));
obj1.add(new BasicDBObject("b", "text"));
orQuery.put("$or", obj1);

BasicDBObject andQuery = new BasicDBObject();
List<BasicDBObject> obj = new ArrayList<BasicDBObject>();
obj.add(new BasicDBObject("c", "text"));
obj.add(orQuery);
andQuery.put("$and", obj);

System.out.println(andQuery.toString());

DBCursor cursor = userCollection.find(andQuery);
while (cursor.hasNext()) {
    System.out.println(cursor.next());
}