MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como usar a função de agregação mongo db-query


Tente desenrolar os LearningNodes array e, em seguida, conte-os agrupando-os
db.PedagogyNodes.aggregate([
    {
       $unwind:"$contentNodes.LearningNodes"
    },
    {
        $group:
        {
            _id:"$contentNodes.LearningNodes",
            count:{$sum:1}
        }
    }
])

Caso você precise fazer alguma correspondência, você pode usar o $match palco
db.PedagogyNodes.aggregate([
    {
        $match:{type:"topic"}
    },
    {
       $unwind:"$contentNodes.LearningNodes"
    },
    {
        $group:
        {
            _id:"$contentNodes.LearningNodes",
            count:{$sum:1}
        }
    }
])

Respondendo a pergunta editada =>

Você não conseguiu visualizar a saída no console, pois o mongoshell não imprime a saída do script na tela. Para fazer isso, faça o seguinte:
var result =  records.PedagogyVersions.aggregate([......]);

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