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

Grupo agregado do MongoDB na coleção de filho interno e obtenha documento completo com contagem


O principal problema é que você precisa passar por toda a coleção (nessa situação você não pode usar os índices para acelerar o processo).

Você pode tentar este código (ele tem menos operação que o seu):
db.getCollection('User').aggregate([
    {
        $unwind: "$UserSubscriptions"
    },
    {
        $group: {
            _id:"$UserSubscriptions.Subscription.Publication.Code",
            users: {$addToSet: "$_id"}
        }
    },
    {
        $project: {"PublicationCode": "$_id", "Count": {$size: "$users"}}
    }
])