Я хочу выполнить запрос в MongoDB 3.2 с помощью Java Driver 3.2, который одновременно содержит предложения $and
и $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<>());
Где criteria1
и criteria2
должны быть связаны с $or
, а в пункте criteria1
следует применять $and
.
Проблема в том, что в MongoDB Java Driver 3.2 такого метода нет, и я получаю ошибку Cannot resolve method find(com.mongodb.DBObject)
.
Мой вопрос:
Как составить такой запрос, как (A && B) || (X && Y)
, в MongoDB Java Driver 3.2?