したがって、すべてのデータを返して平均を判断できることがわかります。私はこれを推測しています。大量のデータを収集し、平均化するたびにノード全体を返さないのが理想的です。
このデータの内容と更新方法によって異なりますが、1つのオプションは、コレクションが追加または変更されるたびに更新される別個のノードを単純に持つことです。
ここにいくつかの荒い擬似コードがあります。たとえば、データベースは次のように見える場合:アイテムが更新されたとき、あなたはメタデータの計算を実行し
var numerator = average * number_of_items + newItem.number;
number_of_items++; <-- this is your new number of items
numerator/number_of_items; <-- this is your new average
:新しいアイテムが追加されたときに
database
|
+--collection
| |
| +--item_one (probably a uid like -k2jduwi5j5j5)
| | |
| | +--number: 90
| |
| +--item_two
| | |
| | +--number: 70
|
+--collection_metadata
| |
| +--average: 80
| |
| +--number_of_items: 2
はその後、あなたは、メタデータの計算を実行します:
var numerator = average * number_of_items - changedItem.oldNumber + changedItem.newNumber;
numerator/number_of_items; <-- this is your new average
このデータが必要な場合は、常にこのデータが必要です。
NoSQLを使い始める前にお読みください:[NoSQLデータモデリング](https://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/) –