Я задал несколько вопросов о работе с массивами в Firestore и недавно обратил внимание на тот факт, что массивы имеют ограничение по размеру и вместо этого следует использовать другую структуру.

В настоящее время я добавляю заказы в массив "бронирования". Каждое бронирование - это объект с примерно 10 парами "ключ-значение". Я планирую иметь до 400 таких в день (например, 16-06-2020, см. Изображение ниже), и мне было интересно, будет ли использование массивов нормальным или это может быть проблемой из-за ограничения размера массива.

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

  1. нет проблем с лимитами "бронирований"

  2. быть легко добавляемым и удаляемым из

  3. легко изменять каждое бронирование. например изменить свойство объекта.

Вот скриншот того, как выглядит моя текущая структура:

enter image description here

Я довольно много гуглил, но не смог найти единого мнения о том, как это структурировать, учитывая мои 3 предпочтения.

0
kiabbott 17 Июн 2020 в 22:18

1 ответ

Лучший ответ

Размер массивов принципиально не ограничен. Максимальный размер, с которым вы столкнетесь, составляет 1 МБ для всего документа .

Если данные вашего документа не строго ограничены 1 МБ, вам следует подумать о перемещении вложенных данных в подколлекцию. Итак, вместо этого:

approvedBusinesses (collection)
  - {id} (document)
    - bookings (nested objects)

Использовать это:

approvedBusinesses (collection)
  - {id} (document)
    - bookings (collection)
      - dd-mm-yyyy (document)

Вам решать, что лучше всего соответствует вашим конкретным потребностям. Дело в том, чтобы переместить неограниченные данные в документы в подколлекциях, где размер документа будет гарантированно не более 1 МБ.

2
Doug Stevenson 17 Июн 2020 в 19:48