группа сбора запросов в FireStore - PullRequest
0 голосов
/ 25 марта 2020

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

У меня есть такая структура записи

{
"idName": "aquarobur",
"displayName": "Aqua Robur Technologies",
"categories": {
 "orgtype": [ "private"],
  "sdg": [ "11","17"],
  "segment": [ "building-and-construction", "consulting"]
 }
}

Я хочу отфильтровать / запросить значения "категории". Например: получить все записи, которые имеют «сегмент» и «строительство и строительство»

const snapshot = catalog_entryRef.where('categories.segment', '==', 'building-and-construction').get()

Я пробовал это. Но он не возвращает никаких записей. Мне кажется, что я могу запрашивать только те поля, которые являются первым уровнем записи. Например, я могу запросить, используя "idName", как это

const snapshot = catalog_entryRef.where('idName', '==', ‘aquarobur’).get()

1 Ответ

0 голосов
/ 25 марта 2020

Использование == в запросе делает проверку на равенство. Таким образом, он возвращает только те документы, в которых поле имеет полное и точное значение, которое вы указали.

Вам нужна операция array-contains для того, что вы хотите:

catalog_entryRef.where('categories.segment', 'array-contains', 'building-and-construction').get()

Для получения дополнительной информации см. документация Firebase по членству в массиве .

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