(Firebase's Firestore || Flutter) Как получить общее количество одинакового поля на всех картах в документе - PullRequest
0 голосов
/ 12 июня 2019

У меня есть идентичные поля в maps в document. Я хочу получить sum общее количество всех map полей.

Вот образец структуры:

1: {
Name: "banana",
Price: 50,
Weight: 70
}

2: {
Name: "apple",
Price: 80,
Weight: 30
}
...

У меня будет несколько maps, подобных этим, в document.

Теперь, как получить sum всего fruits 'price или weight?

1020 * т.е. *

Общая стоимость : 50 + 80 = 130

Общее количество : 70 + 30 = 100

Возможно ли это сделать без упоминания названия map? Так как у меня будет несколько maps в ducument. Если нет, то какова альтернативная структура?

Вот моя структура на данный момент:

          Stores (collections)
                    |
         Products (sub collection)
          |                    |
Fruits (Document)      Vegetables (Document)
       |
Maps with tittle fruit id
     |_ Name
     |_ Price
     |_ Weight

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

1 Ответ

0 голосов
/ 12 июня 2019

Вы хотите подвести итог всех полей карты в одном документе Firestore .

Существует два возможных подхода:

1.Подводя итог при чтении

Когда вы читаете (т.е. запрашиваете) документ Firestore, вы получаете ВСЕ поля этого документа.Поэтому легко прочитать нужные поля и суммировать их.

2.Подводя итог при написании

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

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