У меня есть набор функций на стороне сервера, каждый из которых возвращает список объектов одного и того же типа на основе переданных параметров резольверам в запросе GraphQL -
query {
objListQuery {
objResolver1(params) {
obj-id
}
objResolver2(different params) {
obj-id
}
...
}
}
Здесь objResolver1 иobjResolver2 отправляет обратно список объектов obj.
Сторона сервера -
function objResolver1(params) -> returns list of obj
function objResolver2(different params) -> returns list of obj
...
Я хочу выполнить логическое И между результатами преобразователей, то есть найти общие объекты врезультаты разных распознавателей.
Вместо того, чтобы получать отдельные списки, я хочу только комбинированный список.
Один из способов - объединить результаты на стороне клиента, но это увеличит объем дублированных данных, отправляемых сервером.
Каков наилучший способ достижения этого на стороне сервера?Какие изменения требуются в схеме?
-------------------- РЕДАКТИРОВАТЬ --------------------
Источник данных - это массив объектов obj в формате JSON, полученный из внешнего сервиса на сервере.Источником данных является , а не база данных .
Параметры в каждом преобразователе могут быть один или несколько.Используется для фильтрации объектов.Например, хранилище данных будет иметь следующую структуру:
[
{"dateCreated":"2011-08-12T20:17:46.384Z",
"type":"customer",
....
},
{"dateCreated":"2011-08-14T20:17:46.384Z",
"type":"test",
....
}
]
распознаватели будут иметь вид:
dateResolver (String startDate, String endDate) -> возвращает список объектов obj, dateCreatedнаходится в пределах диапазона typeResolver (String [] type) -> возвращает список объектов obj, тип которых является любым из значений, переданных в массиве.