MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Получаване на резултат $group с брой групи

  1. Използвайте $project за да запазите tag и count в tmp
  2. Използвайте $push или addToSet за съхраняване на tmp във вашите data списък.

Код:

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'}}}
)

Изход:

{
    "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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Вземете _id на вмъкнат документ в базата данни Mongo в NodeJS

  2. Как да получите всички резултати, ако полето за отвиване не съществува в mongodb

  3. Как да сравним 2 колекции mongodb?

  4. Spring Data Mongo Repository::Общ споделен метод за всички проблеми с репо

  5. mongoDB/mongoose:уникален, ако не е нула