sql >> Databáze >  >> NoSQL >> MongoDB

Jak používat agregační funkci mongo db-query

Zkuste uvolnit LearningNodes pole a poté je spočítat jejich seskupením

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

V případě, že potřebujete provést nějaké shody, můžete použít $match etapa

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

Odpověď na upravenou otázku =>

Nebyli jste schopni zobrazit výstup na konzole, protože mongoshell netiskne výstup skriptu na obrazovku. Chcete-li to provést, postupujte takto:

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

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


  1. Vzor modulu Javascript se zpětným voláním Ajaxu

  2. Jak mohu přidat řetězec ke každé hodnotě v poli v Mongoose?

  3. mongodb count vs find with count

  4. Server MongoDB není přístupný v místní síti navzdory vazbě IP