MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB aggrega il gruppo sulla raccolta del bambino interno e ottieni il documento completo con il conteggio

Il problema principale è che è necessario scorrere l'intera raccolta (in questa situazione non è possibile utilizzare gli indici per accelerare il processo).

Puoi provare questo codice (ha meno operazioni del tuo):

db.getCollection('User').aggregate([
    {
        $unwind: "$UserSubscriptions"
    },
    {
        $group: {
            _id:"$UserSubscriptions.Subscription.Publication.Code",
            users: {$addToSet: "$_id"}
        }
    },
    {
        $project: {"PublicationCode": "$_id", "Count": {$size: "$users"}}
    }
])