MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment utiliser la fonction d'agrégation mongo db-query

Essayez de dérouler les LearningNodes tableau puis comptez-les en les regroupant

db.PedagogyNodes.aggregate([
    {
       $unwind:"$contentNodes.LearningNodes"
    },
    {
        $group:
        {
            _id:"$contentNodes.LearningNodes",
            count:{$sum:1}
        }
    }
])

Si vous avez besoin de faire des correspondances, vous pouvez utiliser le $match étape

db.PedagogyNodes.aggregate([
    {
        $match:{type:"topic"}
    },
    {
       $unwind:"$contentNodes.LearningNodes"
    },
    {
        $group:
        {
            _id:"$contentNodes.LearningNodes",
            count:{$sum:1}
        }
    }
])

Répondre à la question modifiée =>

Vous n'avez pas pu afficher la sortie sur la console car mongoshell n'imprime pas la sortie du script à l'écran. Pour ce faire, procédez comme suit :

var result =  records.PedagogyVersions.aggregate([......]);

result.forEach(function(resultDoc){
    print(tojson(resultDoc))
})