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

Indhentning af $grupperesultat med gruppeantal

  1. Brug $project for at gemme tag og count ind i tmp
  2. Brug $push eller addToSet for at gemme tmp ind i dine data liste.

Kode:

db.test.aggregate(
    {$unwind: '$tags'}, 
    {$group:{_id: '$tags', count:{$sum:1}}},
    {$project:{tmp:{tag:'$_id', count:'$count'}}}, 
    {$group:{_id:null, total:{$sum:1}, data:{$addToSet:'$tmp'}}}
)

Output:

{
    "result" : [
            {
                    "_id" : null,
                    "total" : 5,
                    "data" : [
                            {
                                    "tag" : "SOME",
                                    "count" : 1
                            },
                            {
                                    "tag" : "RANDOM",
                                    "count" : 2
                            },
                            {
                                    "tag" : "TAGS1",
                                    "count" : 1
                            },
                            {
                                    "tag" : "TAGS",
                                    "count" : 1
                            },
                            {
                                    "tag" : "SOME1",
                                    "count" : 1
                            }
                      ]
              }
      ],
      "ok" : 1
}


  1. MongoDB $lookup Objectid få tom array?

  2. RuntimeWarning:Du kører arbejderen med superbrugerrettigheder:dette anbefales absolut ikke

  3. Hvordan kan jeg deaktivere MongoDB-logmeddelelser i konsollen?

  4. MongoDB 3 Java tjek om samling findes