Home > database >  MongoDB Aggregation: Counting distinct fields from array
MongoDB Aggregation: Counting distinct fields from array

Time:07-31

Need to count distinct tags on all registers in a mongodb query, using JS.

Register structure:

  {
  "_id": {
    "$oid": "62e593aed8fd9808777225e8"
  },
  "title": "“The world as we have created it is a process of our thinking. It cannot be changed without changing our thinking.”",
  "author": {
    "name": "Albert Einstein",
    "url": "https://quotes.toscrape.com/author/Albert-Einstein"
  },
  "tag": [
    "change",
    "deep-thoughts",
    "thinking",
    "world"
  ]
  }

CodePudding user response:

This could be useful. In addition to get the different values for the field, it returns the number of appearances:

db.collection.aggregate([
  {
    "$unwind": "$tag"
  },
  {
    "$group": {
      "_id": "$tag",
      "total": {
        "$sum": 1
      }
    }
  },
  
])

You can try here: https://mongoplayground.net/p/yXLYkJKO3Wf

  • Related