相关疑难解决方法(0)

如何使用 Java 在 MongoDB 中同时使用 AND 和 OR 子句执行查询?

我想使用 Java Driver 3.2 在 MongoDB 3.2 中执行查询,它同时包含$andand$or子句。

通过参考,我尝试了以下方法:

List<Document> criteria1 = new ArrayList<>();
List<Document> criteria2 = new ArrayList<>();

criteria1.add(new Document("fetchStatus", new Document("$gte", FetchStatus.PROCESSED_NLP.getID())));
criteria1.add(new Document("fetchStatus", new Document("$lte", fetchStatusParam)));
criteria1.add(new Document("episodeID", new Document("$in", episodeIDs)));

criteria2.add(new Document("fetchStatus", new Document("$eq", PROCESSED_FETCH.getID())));
criteria2.add(new Document("isFullTextRet", new Document("$eq", false)));

BasicDBList or = new BasicDBList();
or.add(criteria1);
or.add(criteria2);

DBObject query = new BasicDBObject("$or", or);
ArrayList<Document> results = dbC_Coll.find(query).into(new ArrayList<>());
Run Code Online (Sandbox Code Playgroud)

criteria1andcriteria2应该与$orwhile 内的criteria1子句连接时,$and应该应用。 …

java mongodb mongodb-query mongo-java-driver

4
推荐指数
1
解决办法
1358
查看次数

标签 统计

java ×1

mongo-java-driver ×1

mongodb ×1

mongodb-query ×1