MongoDB: compter le nombre d'éléments dans un tableau
J'ai une collection où chaque document de la collection a un tableau nommé foo
qui contient un ensemble de documents incorporés. Est-il un moyen trivial dans la MongoDB shell pour compter le nombre d'instances sont dans foo
? quelque chose comme:
db.mycollection.foos.count()
ou db.mycollection.foos.size()
?
Chaque document dans le tableau doit avoir un unique foo_id
et je veux faire un rapide comptage pour s'assurer que la bonne quantité d'éléments sont à l'intérieur d'un tableau pour un aléatoire document de la collection.
OriginalL'auteur randombits | 2014-01-27
Vous devez vous connecter pour publier un commentaire.
Dans MongoDB 2.6, l'Agrégation Cadre a un nouveau tableau
$taille
l'opérateur, vous pouvez utiliser:Bien sûr, il suffit d'utiliser un
$group
scène qui résume le tableau des tailles:db.mycollection.aggregate({$group: { _id: null, totalSize: { $sum: { $size: "$foo"}} }})
.OriginalL'auteur
si vous êtes sur une version récente de mongo (2.2 et version ultérieure), vous pouvez utiliser l'agrégation cadre.
qui vous donnera le total
foo
s de votre collection.En omettant le dernier
group
agrège les résultats par enregistrement.OriginalL'auteur