#graphql
#graphql
Вопрос:
У меня есть набор данных с такой схемой:
{
orders{
consumer{
_id,
name
}
}
}
Мой запрос :
query{
orders{
customer{
_id
}
}
}
И мне дано:
{
"data": {
"orders": [
{
"amount" : 12345,
"customer": {
"_id": "aaaaaaaaa"
}
},
{
"amount" : 12324,
"customer": {
"_id": "aaaaaaaaaa"
}
},
{
"amount" : 12385,
"customer": {
"_id": "bbbbbbbbbb"
}
},
{
"amount" : 12245,
"customer": {
"_id": "cccccccccc"
}
}
{
"amount" : 12349,
"customer": {
"_id": "cccccccccc"
}
}, ... ]
}
}
Я хотел бы вернуть все заказы с тем же идентификатором customer_id, которые отображаются более одного. Таким образом, желаемый возврат будет :
{
"data": {
"orders": [
{
"amount" : 12345,
"customer": {
"_id": "aaaaaaaaa"
}
},
{
"amount" : 12324,
"customer": {
"_id": "aaaaaaaaaa"
}
},
{
"amount" : 12245,
"customer": {
"_id": "cccccccccc"
}
}
{
"amount" : 12349,
"customer": {
"_id": "cccccccccc"
}
}, ... ]
}
}
Таким образом, порядок для custmer_id = «bbbbbbbbb» должен быть устранен, поскольку этот customer_id появляется только один раз.
Как написать запрос GraphQL?
Ответ №1:
Я хотел бы вернуть все заказы с тем же идентификатором customer_id, которые отображаются более одного. …
Таким образом, порядок для custmer_id = «bbbbbbbbb» должен быть устранен, поскольку этот customer_id появляется только один раз.
Как написать запрос GraphQL?
graphql не для этого
Фильтрация, поиск, подсчет … отсутствует в спецификациях graphql. Для этих требований нет стандартизированных параметров или синтаксиса.
Роль решателя заключается в выполнении действий / бизнес-логики [в ответ на некоторые параметры / переменные — действия, управляемые данными].
В этом случае вы можете использовать некоторый «флаг фильтра», например, «recurringOnly» (не требуется, по умолчанию false), для распознавателя «заказов». Когда запрос будет содержать true
значение для этого флага:
query{
orders(recurringOnly: true) {
… распознаватель должен отфильтровывать неповторяющиеся записи… как? зависит от деталей реализации сервера / службы / DB / ORM / libs / всего, что используется для разрешения данных / результатов.