Mongodb эквивалент SQL подзапрос - PullRequest
0 голосов
/ 31 марта 2020

Я новичок в MongoDB и хочу эквивалент sql подзапроса, как указано ниже

select * from records where status = "OFF" and category not in (select category from records where status = "ON");

На данный момент я использую 2 различных find () в SpringDataMon go следующим образом

List<String> categories = new ArrayList<>();
Query query = new Query(Criteria.where("status").is("ON"));
List<MyDocument> documents = (List<MyDocument>) mongoTemplate.find(query, MyDocument.class);
for(MyDocument doc : documents ) {
   categories.add(doc.getCategory());
}
Query query = new Query(Criteria.where("category").nin(categories));
documents = (List<MyDocument>) mongoTemplate.find(query, MyDocument.class);

Могу ли я сделать это одним агрегатом?

...