如何在mongo查询java驱动程序中执行$或和“和”?

时间:2011-05-06 22:48:01

标签: java mongodb mongo-java

我想在单个mongo查询中执行AND$or个操作。

在mongo doc中我读过mongo查询默认使用AND

如果我只使用或$or,它的工作原理。但是,如果我尝试使用AND$or则无效。

我试过这样的

BasicDBObject query = new BasicDBObject();
query.append("name", "Anbu");

BasicDBObject orQuery = new BasicDBObject();
orQuery.put("name", "Kalaio");
List<BasicDBObject> orQueries = new ArrayList<BasicDBObject>();
orQueries.add(orQuery);

orQuery = new BasicDBObject();

orQuery.put("name", "Kumar");
orQueries.add(orQuery);

orQuery = new BasicDBObject();
orQuery.put("$or", orQueries);

query.put("$or", orQueries);

DBCursor cur = coll.find(query);//Not Working

DBCursor cur = coll.find(orQuery);//Working

我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

我不熟悉Java驱动程序,但似乎你正试图嵌套“或”。不幸的是,mongo目前不允许这样做。这是未来的计划。有关详细信息,请参阅这些错误:

https://jira.mongodb.org/browse/SERVER-2585

https://jira.mongodb.org/browse/SERVER-1089