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

mongodb unwind array aninhado dentro de um array de documentos


Em unwind stage, field deve ser um campo array. Se não for campo de matriz, trata-o como matriz de 1 elemento.

Dos documentos:


Alterado na versão 3.2:o estágio $unwind não apresenta mais erros em operandos que não são de matriz. Se o operando não for resolvido para uma matriz, mas não estiver ausente, nulo ou uma matriz vazia, $unwind tratará o operando como uma matriz de elemento único.

Resposta à sua pergunta:
db.response.aggregate([
    {
        $project:
        {
            "job_details.label_name":1,
            _id:0
        }
    },
    {
        $unwind:"$job_details.label_name"
    },
    {
        $group:
        {
            _id:"$job_details.label_name",
            count:{$sum:1}
        }
    }
])

Consulte Shell Saída