[
{
"categories":{
"category":[
"sub1",
"sub2",
"sub3"
],
"category2":[
"sub1",
"sub2"
]
}
},
{
"categories":{
"category":[
"sub1",
"sub4"
],
"category2":[
"sub5",
"sub4"
]
}
}
]
хочет получить отдельную категорию и категорию2, используя данные Spring. Я пробовал и Aggregation, и Distinct, и медленно, и я надеюсь, что мне чего-то не хватает
Агрегация:
AggregationResults<Category> results = mongoTemplate.aggregate(Aggregation.newAggregation(Aggregation.group(categoryFields.stream().toArray(String[]::new))),"recipe",Category.class );
Distinct:
categoryFields.stream().forEach(cat -> {
categories.put(cat, mongoTemplate.findDistinct(query, "categories." + cat, "recipe", Recipe.class, Category.class));
});
Агрегация занимает 11 секунд, а различная - 3 секунды.