sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB agregujte skupinu na vnitřní podřízené kolekci a získejte kompletní dokument s počtem

Hlavním problémem je, že musíte projít celou kolekci (v této situaci nelze použít indexy pro urychlení procesu).

Můžete zkusit tento kód (má méně operací než váš):

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



  1. Naplnit na základě stavu v mongoose, mongoDB

  2. Filtrujte podpole pole podle některých kritérií

  3. Nerozpoznané pole:chyba 'ntoreturn' v documenDB

  4. Relační DB v paměti?