объект с массивом массивов с кэшем на стороне клиента - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть схема, которая для простоты описания такова

type level0 {
    ID id
    String name
    [level1] level1s
}
type level1 {
    ID id
    String name
    [level2] level2s
}
type level2 {
    ID id
    String name
}

type Query {
    getLevel0(ID: id)
}

, когда я первоначально получаю свои данные, я запрашиваю, строю свой запрос как таковой

query GetLevel0($id: ID) {
    getLevel0(id: $id) {
        id
        name
        level1s {
            id
            name
            level2s {
                id
                name
            }
        }
    }
}

Итак, на данный моментТеперь я получаю полностью вложенную объектную иерархию своих данных, чтобы я мог загружать все, что мне нужно для быстрого управления данными.

Итак, теперь мой вопрос, когда я собираюсь управлять своей коллекцией level2s для привязки сверху внизэта иерархия объектов просто движется без необходимости создавать дополнительные запросы для прямого доступа к другой информации.Я также использую клиент InMemoryCache, который я хочу обновлять без дополнительных сетевых вызовов для повторного получения полных данных.

Есть ли способ, которым я могу построить схему для поддержки фильтрации в подколлекции?

как, например,

query GetLevel0($id: ID, $level1id: ID) {
    getLevel0(id: $id) {
        id
        name
        level1s(id: $level1id) {
            id
            name
            level2s {
                id
                name
            }
        }
    }
}

Хотите узнать, будет ли это возможным для возможности предварительно сформировать фильтр из результатов кэша, когда я выполняю cache.readQuery для добавления новогоили удалите записи из вложенных коллекций.

Любые дополнительные знания по этому вопросу были бы великолепны.

Спасибо!

...