Firestore: как запросить данные с карты массива - PullRequest
0 голосов
/ 09 февраля 2019

Вот схема для теста db: enter image description here

Я хочу написать запрос, который может получить все документы, где контакты имеют id = 1 в любом индексе массива,

Я проверил оператор array_contains для firestore, но дело в том, что у моего массива есть карта, которая затем имеет идентификатор поля.

Спасибо

1 Ответ

0 голосов
/ 09 февраля 2019

В настоящее время вы не можете создать запрос, который ищет поле объекта в массиве.Единственное, что вы можете найти в массиве, это все содержимое элемента массива, а не его часть.

В базах данных типа NoSQL обычная практика состоит в том, чтобы структурировать данные так, как вам удобно.запросы.Итак, в вашем случае вам придется структурировать свои данные, чтобы вы могли найти документы, в которых элемент массива содержит определенную строку.Таким образом, вы можете создать другой массив, содержащий только те строки, которые вы хотите запросить.Вы должны будете поддерживать эти массивы в актуальном состоянии.

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

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