Как создать составной индекс, который включает карту? - PullRequest
0 голосов
/ 10 января 2019

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

active: boolean
date: string
nameComponents: map
    "nameComponent": boolean

Документ будет выглядеть примерно так:

active: true
date: "2019-02-18"
nameComponents:
    "pineapple": true
    "pie": true

Запрос будет выглядеть примерно так:

Firestore.firestore().collection("someCollection").whereField("active", isEqualTo: true).whereField("nameComponents.pineapple", isEqualTo: true).whereField("date", isLessThanOrEqualTo: "2019-12-31").whereField("date", isGreaterThanOrEqualTo: "2019-01-01")

Я создал следующий составной индекс, не повезло:

активно: по возрастанию, дата: по возрастанию, nameComponents: по возрастанию

Как мне создать составной индекс для этого запроса? А ссылки для создания составного индекса в отладчике всегда, как всегда, приводили меня на веб-страницу с неизвестной ошибкой.

1 Ответ

0 голосов
/ 19 января 2019

Обновление: это, к сожалению, невозможно. Составной индекс требует, чтобы каждому ключу в карте был присвоен свой собственный индекс. А с учетом того, что Firestore устанавливает количество разрешенных составных индексов в базе данных (не в коллекции), это определенно антипаттерн для больших карт.

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