Étant donné que le résultat final n'est qu'un seul chiffre, il ne devrait pas y avoir une telle erreur. À des fins de débogage, il est recommandé d'afficher les résultats de chaque étape du pipeline. Ajoutez { $limit: 3 } après l'étape à afficher et exécutez la sortie sans suivre les étapes. S'il y a trop de données et que le résultat est trop lent, ajoutez une limite au début et exécutez-le d'abord sur de petites données.
S'il n'est pas pratique de le modifier encore et encore et de l'exécuter dans le shell, écrivez-le simplement dans un fichier, dans terminal
$ mongo < agg_uv.js
La redirection d'entrée ne peut pas être omise, sinon elle s'exécutera en mode script, ce qui est quelque peu différent du mode interactif.
Il y a trop de données à traiter. Vous pouvez utiliser $project pour sélectionner d'abord le champ suivant, puis le regrouper,
La syntaxe est correcte. J'ai essayé les données suivantes sur ma machine :
En plus du match, j'utilise la requête d'agrégation suivante :
Le résultat est correct
Étant donné que le résultat final n'est qu'un seul chiffre, il ne devrait pas y avoir une telle erreur. À des fins de débogage, il est recommandé d'afficher les résultats de chaque étape du pipeline. Ajoutez
{ $limit: 3 }
après l'étape à afficher et exécutez la sortie sans suivre les étapes. S'il y a trop de données et que le résultat est trop lent, ajoutez une limite au début et exécutez-le d'abord sur de petites données.S'il n'est pas pratique de le modifier encore et encore et de l'exécuter dans le shell, écrivez-le simplement dans un fichier, dans
terminal
$ mongo < agg_uv.js
La redirection d'entrée ne peut pas être omise, sinon elle s'exécutera en mode script, ce qui est quelque peu différent du mode interactif.