Products : {
id : 1
}
Customer : {
id : 2
}
Список‹> customerProductIds = новый Arraylist();
Я хочу запросить как продукт, так и клиента и проверить, есть ли в списке идентификаторы клиентов и идентификаторы продуктов, если да, возвращать объединенный список как объект.
Примечание . у нас нет никакой связи между двумя коллекциями.
Запрос, который я использую,
LookupOperation lookupOperation = LookupOperation.newLookup().from("Product")
.localField("_id").foreignField(" customer._id").as("entity");
AggregationResults<Object> entities =
this.template.aggregate(
Aggregation.newAggregation(lookupOperation,
Aggregation.match(Criteria.where("id").in(ids))),
Customer.class, Object.class);
Но это не работает. Я ищу лучший подход. Какие-либо предложения?
Примечание : Возможно, поиск работает как объединение в SQL, где он ищет отношение внешнего ключа к первичному ключу, которое не применяется здесь как обе коллекции. являются независимыми.
Изначально у меня было два разных запроса и добавление их в список. Но мне нужно реализовать разбиение на страницы для объединенного списка. Если я использую подход с двумя запросами, я не смогу обрабатывать разбиение на страницы для комбинированного списка.
Есть ли какие-либо параметры в Map Reduce, которые я могу реализовать для этого требования?
Надеюсь, сценарий пройден.