GraphQL, поиск/фильтр узлов с определенным полем

Предположим, у вас есть этот запрос

{
  "data": {
    "allSitePage": {
      "edges": [
        {
          "node": {
            "context": {
              "frontmatter": null
            }
          }
        },
        {
          "node": {
            "context": {
              "frontmatter": null
            }
          }
        },
        {
          "node": {
            "context": {
              "frontmatter": {
                "date": "2019.02.14",
              }
            }
          }
        },
      ]
    }
  }
}

Как вы можете отфильтровать существованием из date? Что-то типа

{
  allSitePage(filter: {context: {frontmatter: {title: true } } } ) {
    edges {
      node {
        context {
          frontmatter {
            date
          }
        }
      }
    }
  }
}

ОТРЕДАКТИРОВАНО

Это работает

(filter: {context: {frontmatter: {title: {ne:null }}}})

но это лучший способ?

В GraphQL нет родного понятия «фильтр». Является ли этот вопрос более конкретным для какой-либо схемы или структуры?

David Maze 13.03.2019 11:37

Также может помочь задать вопрос «является ли frontmatter не null», а не «присутствует ли date»: в GraphQL вы всегда получите каждое поле, которое вы запрашиваете для существующих объектов.

David Maze 13.03.2019 11:38

структура - Гэтсби, и я понимаю вашу точку зрения с вашим вторым комментарием, что я и сделал в конце

GWorking 14.03.2019 21:11
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Что такое Apollo Client и зачем он нужен?
Что такое Apollo Client и зачем он нужен?
Apollo Client - это полнофункциональный клиент GraphQL для JavaScript-приложений, который упрощает получение, управление и обновление данных в...
1
3
161
0

Другие вопросы по теме