Как я могу фильтровать по uid связанного документа / отношения, используя prismic graphql api?

#graphql #prismic.io

#graphql #prismic.io

Вопрос:

Я пытаюсь составить список статей по их категориям, по uid, и я предполагаю, что мне пришлось бы использовать where запрос, но я не могу заставить это работать со связанными документами.

Проблема, похоже, в том, что where принимает только строку в поле, но в случае связанного документа вам нужно будет перейти к полю uid.

Я не уверен, что использую неправильный запрос, но изо всех сил пытаюсь найти что-нибудь в документации, что могло бы мне помочь.

Я попытался покопаться в объекте категории:

 {
  allDirectoryServices(
    where: { category: { _meta: { uid: "developers" } } }
  ) {
    edges {
      node {
        name
        city
        region
        country
        category {
          ...on DirectoryTaxonomy {
            _meta {
              uid
            }
            name
          }
        }
      }
    }
  }
}
  

Но это возвращает ошибку, что ожидается строка:

 "message": "Expected type String, found {_meta: {uid: "developers"}}.",
  
 {
  allDirectoryServices(
    where: { category: "developers"}
  ) {
    edges {
      node {
        name
        city
        region
        country
        category {
          ...on DirectoryTaxonomy {
            _meta {
              uid
            }
            name
          }
        }
      }
    }
  }
}
  

Очевидно, что это не возвращает результатов.

Ответ №1:

Я также задал этот вопрос группе Prismic Slack и получил от них ответ:

Для того, чтобы выполнить запрос по полю связи с контентом, подобному этому, вам необходимо использовать идентификатор документа.

where: { category: "WBsLfioAABNUo9Kk" }

К сожалению, невозможно выполнить запрос по UID (или любому другому полю).

Я предполагаю, что они вскоре обновят свою документацию, поскольку это в ней не предусмотрено.

Спасибо ребятам из Prismic!