Как эффективно использовать результат запроса Hasura для другого запроса?

В настоящее время я запрашиваю свою базу данных Hasura, используя userId, чтобы узнать местоположение.

users(where: {id: {_eq: 1528}}) {
    location
}

Затем я использую местоположение для запроса пользователей, находящихся рядом с этим пользователем.

    users(
      where:
        { location: {_st_d_within: {distance: 20000, from: $point }}},
    ) {
      firstName
      city
      region
    }
  }

Есть ли способ эффективно объединить эти два запроса, чтобы я запрашивал только один раз?


person Vaibhav Verma    schedule 03.06.2020    source источник
comment
Привет, я немного запутался, как помогает использование нескольких фильтров в одном запросе. Сначала мне нужно запросить, используя идентификатор 1528, чтобы получить местоположение. Только тогда у меня будет место для фильтрации следующей серии результатов.   -  person Vaibhav Verma    schedule 04.06.2020
comment
хммм ... вы не можете сделать это одним запросом   -  person xadm    schedule 04.06.2020


Ответы (1)


Вы не можете объединить эти два запроса в один.

Что вы можете сделать, так это создать функцию Postgres и запросить эту функцию вместо этого, как описано в документации Hasura:

https://hasura.io/docs/1.0/graphql/manual/schema/custom-functions.html#example-postgis-functions

person Johan Eliasson    schedule 10.06.2020