Пожарный магазин по дате и времени отдельно - PullRequest
0 голосов
/ 04 февраля 2019

Как мне запросить документы по определенному диапазону даты и времени?То есть.Я хочу запросить документы по определенному диапазону дат (01-01-2019 - 31-01-2019), и с тех дат только те документы, которые сделаны с 10:00 до 12:00.

1002 * Это будет выглядеть примерно так:
let ref = db.collection('events')

// Query by date range
ref = ref
  .where('created', '>=', new Date(2019, 1, 1, 10, 0, 0, 0))
  .where('created', '<=', new Date(2019, 1, 1, 12, 0, 0, 0))

// Query by time range in each date
ref = ref
  .where('created', '>=', *START TIME = 10pm*)
  .where('created', '<=', *END TIME = 12pm*)

Итак, вопрос в том, как фильтровать часы и минуты каждый день, когда я запрашиваю?Надеюсь, вы понимаете, о чем я здесь спрашиваю!Я обновлю вопрос, если необходимо.

Обновление Структура базы данных следующая

/ events / {один документ события}:

{
  cafeId: String,
  created: Firestore timestamp // ex. February 2, 2019 at 10:16:00 AM UTC+2
  discount: Number,
  eventId: Number,
  productCount: Number,
  keywords: Array,
  products: Map,
  payment: Map,
  returned: Number,
  total: Number
}

И когда я получу это в созданном клиенте, преобразуется в:

{ _seconds: Number, _nanoseconds: 0 }

1 Ответ

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

Если вы хотите использовать «стандартные» методы where(), вам, вероятно, придется выполнить вторую фильтрацию на внешнем интерфейсе, исходя из результатов, полученных с помощью

ref = ref
  .where('created', '>=', new Date(2019, 1, 1, 10, 0, 0, 0))
  .where('created', '<=', new Date(2019, 3, 1, 12, 0, 0, 0))

Другой подходбудет хранить в дополнительном поле (например, createdText) ваше значение даты / времени в произвольном формате, например, YYYYMMDDHHMM, с 24-часовым форматом для часов (т. е. ЧЧ).

Таким образом, документ будет правильно отсортирован, и вы можете запросить только один where, как показано ниже:

ref = ref
  .where('createdText', '>=', '201902031000')
  .where('createdText', '<=', '201902041200')

Довольно часто дублировать данные в базе данных NoSQL, в частности, чтобы разрешитьзапросы в соответствии с потребностями вашего бизнеса.

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