- Trending Categories
- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Perform group and distinct together in a single MongoDB query
For this, simply use MongoDB $group. Let us first create a collection with documents −
> db.demo16.insertOne({ ... "StudentName" : "Chris", ... "StudentSection" : "A", ... "StudentAge" : 23, ... "StudentMarks" : 47 ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5e13827455d0fc6657d21f07") } > db.demo16.insertOne({ ... "StudentName" : "Bob", ... "StudentSection" : "B", ... "StudentAge" : 21, ... "StudentMarks" : 85 ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5e13827555d0fc6657d21f08") } > db.demo16.insertOne( { ... "StudentName" : "Carol", ... "StudentSection" : "A", ... "StudentAge" : 26, ... "StudentMarks" : 97 ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5e13827655d0fc6657d21f09") }
Following is the query to display all documents from a collection with the help of find() method −
> db.demo16.find().pretty();
This will produce the following output −
{ "_id" : ObjectId("5e13827455d0fc6657d21f07"), "StudentName" : "Chris", "StudentSection" : "A", "StudentAge" : 23, "StudentMarks" : 47 } { "_id" : ObjectId("5e13827555d0fc6657d21f08"), "StudentName" : "Bob", "StudentSection" : "B", "StudentAge" : 21, "StudentMarks" : 85 } { "_id" : ObjectId("5e13827655d0fc6657d21f09"), "StudentName" : "Carol", "StudentSection" : "A", "StudentAge" : 26, "StudentMarks" : 97 }
Following is the query to implement group and distinct operation together −
> db.demo16.aggregate([{ ... $group : { ... _id : null, ... StudentName : { $addToSet : "$StudentName" }, ... StudentSection : { $addToSet : "$StudentSection" }, ... StudentMinimumAge : { $min : "$StudentAge" }, ... StudentMaximumAge : { $max : "$StudentAge" }, ... StudentMinimumMarks: { $min : "$StudentMarks" }, ... StudentMaximumMarks : { $max : "$StudentMarks" } ... } ... }]).pretty();
This will produce the following output −
{ "_id" : null, "StudentName" : [ "Carol", "Bob", "Chris" ], "StudentSection" : [ "B", "A" ], "StudentMinimumAge" : 21, "StudentMaximumAge" : 26, "StudentMinimumMarks" : 47, "StudentMaximumMarks" : 97 }
Advertisements