Сортировка запросов GraphQL случайным образом

Ищу решение случайноsort запросом GraphQL. Я просмотрел документацию, и оказалось, что у них нет вариантов.

Кто-нибудь знает об одном или обходном пути для рандомизации следующего запроса?

query {
  allContentfulAttraction(
    limit: 4
    filter: { location: { eq: "AttractionLocation1" } }
  ) {
    edges {
      node {
        id
      }
    }
  }
}
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
2 834
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

GraphQL просто предоставляет основу для разрешения и проверки значений полей на основе схемы. В нем нет предустановленных средств фильтрации или сортировки запрашиваемых данных. Сервер решает, предоставлять ли клиенту способы сделать это и как реализовать эту функцию.

Что касается конкретно Gatsby, их API поддерживает запросы случайных узлов. В лучшем случае вы можете запросить все узлы, а затем выбрать случайный набор элементов из возвращенных данных, используя sampleSize lodash или pickset Chance.

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

GWorking 12.02.2020 23:16

Да, бы будет более эффективным, чтобы иметь возможность делать это через API. Однако, если API не поддерживает эту функциональность, единственный вариант - сделать это на стороне клиента.

Daniel Rearden 17.02.2020 16:27

Будем надеяться на будущую реализацию. При использовании gatsby, если вы выполняете запрос в gatsby-node и передаете только уменьшенное количество сообщений в контексте, время сборки находится под контролем.

GWorking 17.02.2020 17:26

https://www.howtographql.com/graphql-js/8-filtering-pagination-and-sorting/ говорит, что сортировка обрабатывается какой бы то ни было структурой, которую вы используете, например ПризмаorderBy или Маяк@orderBy.

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