Aggregation in MongoDB using Python

MongoDB is free, open-source,cross-platform and document-oriented database management system(dbms). It is a NoSQL type of database. It store the data in BSON format on hard disk. BSON is binary form for representing simple data structure, associative array and various data types in MongoDB. NoSQL is most recently used database which provide mechanism for storage and retrieval of data. Instead of using tables and rows as in relational databases, mongodb architechture is made up of collections and documents. 

Aggregation in MongoDB

Aggregation operation groups the values from multiple documents(rows in case of MongoDB) together to perform a variety of operations on the grouped data and is going to return a single result for each grouped data after aggregation. 

Syntax:

db.collection_name.aggregate(aggregate operations)

Sample Database used in all the below examples:



Example 1:

Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

from pymongo import MongoClient
  
my_client = MongoClient('localhost', 27017)
db = my_client["GFG"]
coll = db["Student"]
  
# Aggregation
cursor = coll.aggregate([{"$group":
       {"_id":"$Branch",
       "similar_branches":{"$sum":1}
       }
       }])
  
for document in cursor:
       print(document)

chevron_right


Output:

Here, we use “$group” command for grouping then by “_id”:”branches” we are grouping ids according to the branches. “similar_branches” is the keyword used for the total number of similar branches,we can use any keyword here. “$sum:1” is used as a counter of total number of each branches. The sum is incrementing by 1. 

Example 2:  We can also use the aggregation query for counting the number of document in the database.

Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

from pymongo import MongoClient
  
my_client = MongoClient('localhost', 27017)
db = my_client["GFG"]
coll = db["Student"]
  
# Aggregation
cursor = coll.aggregate([{"$group":
       {"_id":"$None",
       "total collections":{"$sum": 1}
       }
       }])
  
for document in cursor:
       print(document)

chevron_right


Output:

{'_id': None, 'total collections': 8}



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.