参考記事で答えを見つけましたが、私は MongoDB の初心者であり、MongoDB のドキュメントは初心者向けに十分に説明されていません。クリスティーナの本も読んでいるので、宿題をしています。この投稿は、従来の方法ではなく、これを理解しようとしている他のユーザーにも役立つ可能性があると思いました。問題があり、誰かがコードサンプルを投稿しましたが、何が起こったのか本当に理解していません。
そうは言っても、以下にリストした相互に関連するいくつかのことで本当に苦労しています。この問題について別の良い質問と回答を見つけましたが、それは単なるコードであり、mongoの初心者には十分に説明されていません. また、コードは機能しませんでした (http://stackoverflow.com/questions/6414312/fastest-way-to-get-the-average-of-a-specific-field-in-mongodb)。:/
次のようなドキュメントがあります。
{ "_id" : ObjectId("4fc7e9138c8b0f0d5200000f"), "memtotal" : 996, "swaptotal" : 2015, "swapfree" : 2015, "memfree" : 464, "time" : 1338501393 }
{ "_id" : ObjectId("4fc7e9518c8b0f0d52000015"), "memtotal" : 996, "swaptotal" : 2015, "swapfree" : 2015, "memfree" : 464, "time" : 1338501455 }
{ "_id" : ObjectId("4fc7e98f8c8b0f0d5200001b"), "memtotal" : 996, "swaptotal" : 2015, "swapfree" : 2015, "memfree" : 463, "time" : 1338501517 }
{ "_id" : ObjectId("4fc7e9cd8c8b0f0d52000021"), "memtotal" : 996, "swaptotal" : 2015, "swapfree" : 2015, "memfree" : 464, "time" : 1338501579 }
{ "_id" : ObjectId("4fc7ea0b8c8b0f0d52000027"), "memtotal" : 996, "swaptotal" : 2015, "swapfree" : 2015, "memfree" : 446, "time" : 1338501641 }
{ "_id" : ObjectId("4fc7ea498c8b0f0d5200002d"), "memtotal" : 996, "swaptotal" : 2015, "swapfree" : 2015, "memfree" : 424, "time" : 1338501703 }
すべての memfree 要素を取得してから、平均を計算しようとしています。上記の参照リンクに基づいてコードをコピーして貼り付けようとしましたが、最初はある程度意味があり、次に実際には機能しませんでした。
行 2) 最初の行は理にかなっており、かなり自明です。 行 3) 2 行目のカウント: 0、合計: 0 - これらは true/false スイッチですか? 4 行目) これは mapReduce() 関数から同じ reduce を呼び出していますか? doc と out はキーワードですか、それとも勝手に定義していますか? その他) とにかくコードが失敗しました。なぜですか?
最後のサブ質問: mapReduce を使用して同じことを行うことはできますか?また、平均を計算する必要があるシャードがある場合、これに対してグループに対して mapReduce 関数を使用するのはなぜですか?