MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Groupe agrégé MongoDB sur la collection enfant interne et obtenir un document complet avec décompte

Le principal problème est que vous devez parcourir toute la collection (dans cette situation, vous ne pouvez pas utiliser les index pour accélérer le processus).

Vous pouvez essayer ce code (il a moins d'opération que votre):

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