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

Jak spočítat výskyt každé hodnoty v poli?

Zapomněli jste na složené závorky na key hodnotu a musíte tento řádek ukončit znakem , místo ; .

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

AKTUALIZACE

Po realizaci comments je pole...musíte použít aggregate za tím účelem, abyste si mohli 'rozvinout' comments a poté na něm seskupit:

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

Pro ukázkový dokument v otázce to vyjde:

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


  1. Aktualizace ve forEach na mongodb shellu

  2. Nejlepší postupy pro provozování MongoDB v clusteru

  3. Apache HBase + Apache Hadoop + Xceivers

  4. Odinstalujte mongoDB z ubuntu