ИЗМЕНИТЬ 18 сентября 2020 г.
В примечаниях к выпуску Firebase говорится, что теперь есть not-in
и !=
запросы. (Теперь доступна соответствующая документация.)
not-in
находит документы, в которых значение указанного поля отсутствует в указанном массиве.
!=
находит документы, в которых значение указанного поля не совпадает с указанным значением.
Ни один из операторов запроса не будет соответствовать документам, в которых отсутствует указанное поле. Обязательно ознакомьтесь с документацией по синтаксису для вашего языка.
ОРИГИНАЛЬНЫЙ ОТВЕТ
Firestore не предоставляет проверки на неравенство. Согласно документации:
Метод where () принимает три параметра: поле для фильтрации, операцию сравнения и значение. Сравнение может быть ‹,‹ =, ==, ›или› =.
Операции неравенства не масштабируются, как другие операции, использующие index. Индексы Firestore подходят для запросов диапазона. С этим типом индекса для запроса неравенства серверной части все равно придется сканировать каждый документ в коллекции, чтобы получить результаты, а это очень плохо для производительности, когда количество документов растет.
Если вам нужно отфильтровать результаты, чтобы удалить определенные элементы, вы все равно можете сделать это локально.
У вас также есть возможность использовать несколько запросов, чтобы исключить отдельное значение. Примерно так, если вы хотите все, кроме 12. Запросите значение ‹12, затем запросите значение› 12, а затем объедините результаты в клиенте.
person
Doug Stevenson
schedule
12.11.2017