J'ai des documents avec la structure suivante:MongoDB: compter les valeurs de tableau avec MapReduce/agrégation
{
"name" : "John",
"items" : [
{"key1" : "value1"},
{"key1" : "value1"}
]
}
et ont construit une fonction simple de compter le nombre du total « articles ».
var count = 0;
db.collection.find({},{items:1}).limit(10000).forEach(
function (doc) {
if(doc.items){
count += doc.items.length;
}
}
)
print(count);
Mais après ~ 1 million d'éléments, ma fonction se brise, Mongo se ferme. J'ai examiné le nouveau cadre d'agrégation ainsi que les fonctions mapreduce, et je ne suis pas sûr de savoir quel serait le meilleur à utiliser pour un simple compte comme celui-ci.
Suggestions bienvenues! Merci.
Vous obtenez un délai d'attente du curseur prolly sur ce point, si vous deviez exécuter disons 10K comme vous montrez à temps dans une boucle il devrait ouvrir un nouveau curseur chaque fois et ainsi vous ne devriez pas souffrir le problème de dépassement de temps. – Sammaye