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

Как да преброим появата на всяка стойност в масива?

Забравихте фигурните скоби на key стойност и трябва да прекратите този ред с , вместо ; .

db.issues.group({
    key: {"comments.username":true},
    initial: {sum:0},
    reduce: function(doc, prev) {prev.sum +=1},
});

АКТУАЛИЗАЦИЯ

След реализиране на comments е масив...трябва да използвате aggregate за това, за да можете да „отвиете“ comments и след това групирайте върху него:

db.issues.aggregate(
    {$unwind: '$comments'},
    {$group: {_id: '$comments.username', sum: {$sum: 1}}}
);

За примерния документ във въпроса това извежда:

{
  "result": [
    {
      "_id": "Brandon Black",
      "sum": 1
    },
    {
      "_id": "Nelson Elhage",
      "sum": 3
    }
  ],
  "ok": 1
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Влияние върху производителността при Meltdown върху MongoDB:AWS, Azure и DigitalOcean

  2. Йерархични заявки с Mongo с помощта на $graphLookup

  3. Как да сортирате и ограничите резултатите в mongodb?

  4. Най-добрият начин за съхраняване на изображения в уеб приложение MERN стек

  5. Работи ли вмъкването на множество документи в Meteor Collection по същия начин като чистия mongodb?