Как получить все документы в коллекции, которые имеют наибольшее значение для определенного целочисленного поля из всех документов в коллекции

#javascript #firebase #google-cloud-firestore

#javascript #firebase #google-cloud-firestore

Вопрос:

У меня есть коллекция Firestore под названием «игроки», и каждый документ в «игроках» содержит целочисленное поле под названием «оценка». Я хотел бы получить все документы в коллекции «players», которые имеют наибольшее значение для «score» из всех документов в коллекции «players». Другими словами, я пытаюсь найти все документы в коллекции «игроки», которые занимают 1-е место по количеству очков. Как мне это сделать? Я нашел способ получить наивысший «балл» в коллекции, но как мне получить все документы, которые имеют наивысший «балл»? Спасибо!

Комментарии:

1. пожалуйста, предоставьте в аренду пример ввода, ожидаемый результат и, возможно, то, что вы пробовали до сих пор

Ответ №1:

Это невозможно с помощью одного запроса (по крайней мере, ненадежно и без превышения минимального количества документов, которые вы хотите). Что вам нужно будет сделать, это запросить несколько документов (возможно, не более 10), а затем отфильтровать те, которые не имеют равенства для наивысшего балла. Если все документы имеют высокий балл, вам нужно будет использовать разбивку на страницы для запроса следующего пакета и снова отфильтровать документы, которые вам не нужны.