次の構造のドキュメントがあります。
{
"name" : "John",
"items" : [
{"key1" : "value1"},
{"key1" : "value1"}
]
}
そして、「アイテム」の総数をカウントする簡単な関数を構築しました。
var count = 0;
db.collection.find({},{items:1}).limit(10000).forEach(
function (doc) {
if(doc.items){
count += doc.items.length;
}
}
)
print(count);
しかし、約 100 万個のアイテムの後、関数が壊れ、Mongo が終了します。新しい集計フレームワークと mapreduce 関数を調べましたが、このような単純なカウントにどちらを使用するのが最適かわかりません。
提案を歓迎します! ありがとう。