Фильтрация документов по документам в их подколлекциях - PullRequest
0 голосов
/ 28 февраля 2020

Рассмотрим следующую структуру Firestore:

  • Коллекция people
  • У каждого документа в коллекции есть подколлекция pets
  • Подколлекция pets имеет несколько документов с данными о питомцах.

Теперь я хочу запросить людей, чьи питомцы удовлетворяют определенным условиям. Например, люди, у которых более двух домашних животных, или те, у кого есть домашнее животное по имени "AB C".

Возможно ли это?

1 Ответ

2 голосов
/ 28 февраля 2020

Первый приведенный вами пример запроса («люди, у которых более двух домашних животных») невозможен с вашим текущим набором данных. В Firestore нет операций подсчета или агрегирования. Если вы хотите посчитать вещи, вам нужно будет получить все документы и сосчитать их на клиенте или вести активный подсчет, используя другие средства.

Второй приведенный вами пример запроса («люди, которые владеют домашнее животное, чье имя «AB C»), возможно с помощью запроса группы сбора к подколлекциям с именем «домашние животные», которые фильтруют документы, используя поле, содержащее имя домашнего животного. Запрос вернет все домашних животных среди всех подколлекций, и вам нужно будет выполнить их итерацию и изучить ссылки на эти документы, чтобы составить список людей. С вашими данными невозможно выполнить один запрос, чтобы получить только список людей.

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