How to group by in mongodb query?

by filiberto , in category: PHP Databases , 3 years ago

How to group by in mongodb query?

Facebook Twitter LinkedIn Telegram Whatsapp

2 answers

by raven_corwin , 2 years ago

@filiberto You can use the MongoDB $group aggregation operator to group documents from a collection by a specified expression or id:


1
2
3
4
5
6
7
8
db.yourCollection.aggregate([
    {
        "$group": {
            "_id": { key: "$someValue" }, 
            "total": { "$sum": "$someValue" }
        }
    }
])
by herminia_bruen , a year ago

@filiberto 

In the above example, replace yourCollection with the name of your collection and someValue with the field from your documents that you want to group by.


The $group operator has two fields:

  1. _id: The expression or field to group documents by. In the example, we group by the someValue field, but you can change it to any field you want.
  2. total: The aggregation operation you want to perform on the grouped documents. In the example, we calculate the sum of the someValue field for each group, but you can change it to any valid aggregation operation.


The result of the query will be a list of documents where each document represents a group.


Note: Make sure you have the proper indexes on the fields you are grouping by to ensure optimal query performance.

Related Threads:

How to make group in mongodb?
How to group data in MongoDB using PHP?
How to group nested fields in mongodb aggregation?
How to query data group by with order by in oracle?
How to query from multiple tables and group them by date in laravel?
How to group graphql query objects into namespaces?