Нужен обходной путь для сравнения пределов диапазона по диапазону (<, <=,>,> =) только на 1 поле - PullRequest
0 голосов
/ 17 июня 2019

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

    .where('startDate', '<=', endDate);
    .where('endDate', '>=', startDate);

Этот запрос даст мне перекрывающиеся диапазоны дат. Проблема в firebase допускает неравенство только для одного поля. Так что это не позволит мне использовать этот запрос. Есть ли обходной путь для этого?

Так что, если у вас запланировано собрание на 15/06/19 - 18/18/19, вы сможете увидеть других людей, которые проводят собрания с 17.06.19-19.07.19. Я не знаю, как это сделать, если я могу использовать фильтры неравенства только на одну дату.

Спасибо за вашу помощь.

1 Ответ

1 голос
/ 17 июня 2019

Если вы храните только даты (а не время), то вы также можете хранить каждую отдельную дату собрания в поле типа array. Таким образом, документ с вашей встречей с 15 по 18 июня будет содержать массив из четырех отдельных дат, вероятно, представленных в виде целого числа ГГГГММДД.

Теперь, если вы хотите найти совпадения, вы можете выполнить один запрос для каждой даты в этом диапазоне, используя array-содержа . Объедините результаты запросов на клиенте, и результаты будут все встречи, которые будут иметь общий минимум один день с каждой из указанных дат для исходного собрания.

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