Home > Back-end >  MongoDB count different values in multiple arrays
MongoDB count different values in multiple arrays

Time:09-19

I want to count how often a unique value occurs. I have multiple arrays with objects like:

{“value”:”a”,”begin”:0,”end”:12}

but I only need the “value” part of the object so I projected only the values so the result of my projection looks like this but with multiple arrays:

{“values”:[{“value”:”a”},{“value”:”b”},{“value”:”b”}]}

My goal is to get a result array with all different values and how often they occurred in all multiple arrays:

[{“value”:”a”,”count”:1},{“value”:”b”,”count”:2}]

CodePudding user response:

You can simply do:

db.collection.aggregate([
  {$unwind: "$values"},
  {$group: {_id: "$values.value", count: {$sum: 1}}}
])

See how it works on the playground example

  • Related