MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB aggregierte Gruppe zur Sammlung innerer untergeordneter Elemente und vollständiges Dokument mit Zählung

Das Hauptproblem besteht darin, dass Sie die gesamte Sammlung durchlaufen müssen (in dieser Situation können Sie die Indizes nicht zur Beschleunigung des Prozesses verwenden).

Sie können diesen Code ausprobieren (er hat weniger Betrieb als Ihr):

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