Just a quick note, you can use any data for this video. I don't own this data. Half of it was taken from online and half of it was generated by ChatGPT. Data is not important here, these questions and use cases are important and these were were totally designed by me. Thanks and please share 😁 gist.github.com/hiteshchoudhary/a80d86b50a5d9c591198a23d79e1e467
"08:30" - Create collection in Mongodb cluster and inserting data via Mongodb extension from vs code "15:14" - How to use aggregation pipeline inside Mongodb * Use $ sign with operator and field name* "18:38" - count operator with match "31:19" - sum with grouping avoid count "48:46"- Avoid using count with group bad "22:15" - grouping by _id with "$filed" "24:06"- grouping all by null "24:42" - grouping and getting avg via $avg "33:02" - filtering on 2nd stage via sort " 35:36" - summarizing questions "51:52" - Nested drilling and sorting and limiting***
I'm quite impressed with this video. I tried learning the MongoDB aggregation pipeline two years ago. I could not grasp it. With this video, I am confident to apply it to my Node.js backend projects with ease. It has also helped to learn how to use the MongoDB docs. With this, I will watch your other videos due to your easy way of teaching. More grease to your elbow.
Some additional tips 1) Always think TWICE when you are using operators like "$unwind' because it is very costly operator because it creates multiple copies of a same documents. Try to think some other possible solution. Some costly operators are: "$lookup", "$unwind", "$facet", etc. 2) It is a best practice to use $project after the $group stage in the pipeline because "by default, mongodb return a BSON object and not a JSON object" and BSON object have more properties than a JSON object. So using the $project, you can get the JSON object You can study this point for more knowledge. 3) If the size of your document is big, then always use ".allowDiscUse(true)" in your aggregation pipeline. 4) When dealing with larger chunks of data, use "cursor" and "batchSize" approach.
Although not always used, the .allowDiskUse(true) option causes MongoDB to create temporary files on disk and use these files to perform aggregation operations. Since disk I/O is much slower than memory I/O, In some cases, allowing disk usage may strain performance.
I don't understand what kind of content people want in the world of paid classes? These videos are totally free. is this the reason of not getting credit? Let's appreciate his explanation and please show some support i don't want him to stop making videos.
Its really very very underrated, it should have its views in millions. If anyone wants to learn anything useful for MongoDB this is the only video. beautifully explained
Gratitude to Hitesh Choudhary for the insightful MongoDB aggregation pipeline tutorial! His expertise and clear explanations have been instrumental in enhancing my understanding of this powerful feature. Thank you, Hitesh, for your valuable contribution to the developer community!"
Thank you very much for teaching it this way by solving scenario/requirement based questions, rather than just talking about all the operators present in mongodb.
At 49:18 , Just wanted to tell, We can count No. of males and females using this also [ { $group: { _id: '$gender', count: { $count: {} } } } ] But $count is generally used for counting no of documents in a stage.
Hi Hitesh, thank you for such an informative video about MongoDB Aggregration. I am new to MongoDB and this is very helpful. For those who want to take it step further to display only the author_name instead of the whole object 🤓 : [ { $lookup: { from: "authors", localField: "author_id", foreignField: "_id", as: "author_details" } }, { $addFields: { author_details: {$arrayElemAt: ["$author_details", 0]} } }, { $addFields: { author_name: "$author_details.name" } }, { $project: { author_name: 1, id: 1, genre: 1, author_id: 1, title: 1 } } ]
I am here after completing the Aggregation and pipelines video on Chai or Code . Really Sir Nobody can't teach as you teach, I paid 80k for full-stack dev and now I am a Full-Stack dev but really sir I have learned all things like JavaScript, ReactJs and BackEnd from you . Really Sir you are my hero and I am your fan 🥺
You help me a lot in learning MongoDB operations besides those for CRUD. I am more confident in using aggregation pipeline to collect statistic information now. Thanks you for your work! Expecting your new video on Tailwindcss...
First, thank you for your excellent explanation, I loved the course, enjoyed it a lot, and learned from it. but I would like to add a point, you said at the beginning of the course that this tutorial is for beginners which is not necessary because, this is my first time studying MongoDB aggregation and MongoDB in general, but I do have a background in Software Enginnering. However, I find the course perfect for first learning and global all the basics needed to start working with MongoDB Aggregations, but not enough for more advanced and complex queries. so I recommend you to add a course for advanced and complex queries. we will appreciate it a lot. Thank you!!!
Thanks for your unique way of tutorials, with practical implementation and assignments. Learnt MongoDB and feeling confident in same. Also this helped me in Javascript Backend assignment. Really liked your way of teaching 😇
Great video on aggregation. Thank you Hitesh! I think we can have more scenarios like operations on array of objects (and when some fields don't exist in some documents). These are more challenging in real life.
thank you very much for sharing, this is very very very very insightful, you 've just saved me a lot of time of wondering up and down to understand aggregation pipeline
this can be another way the question Q. number of users which have "ad" as a tag at index 2 [ { $unwind: { path: "$tags", includeArrayIndex: "arrayindex", }, }, { $match: { $and: [ { arrayindex: 1, }, { tags: "ad", }, ], }, }, { $count: 'users' } ]
Thanks so much for this tutorial.Could you take it a little further by actually writing a backend NodeJs to utilize those query results of the aggregation.I mean how to use it in the backend
in node you can use it like you might have used products.find() method or products.findByID() method, in the same way you can use product.Aggregate() and inside parenthesis write your aggregation query. If that helps ✌.
[ { $unwind: { path: "$tags", } }, { $group: { _id: "$_id", count: { $sum: 1 } } },{ $group: { _id: null, avg: { $avg: "$count" } } } ] $unwind: This operator breaks up the array field ($tags) into individual documents. If a document has 3 elements in the tags array, it will create 3 separate documents, each containing one element from the array. $group: The first $group groups these documents back together by their original _id. It counts how many documents were created for each _id, which corresponds to the number of elements in the tags array for each user. $group: The second $group aggregates these counts into a single document and calculates the average ($avg) number of tags per user.
Sir, could ypu help us with a mongo db aggregation project as it is almost impossible to find a good one it will help us get to know more how this is used in production live projects
If anyone is not able to use the regex expression as shown in the video use this instead [ { $match: { phone:{ $regex: "^\\+1" } } }, { $count:"Number starting from +1" } ]
Not able to understand, what is being happening here . Kabhi kabhi bolte hai aap free course sa kuch a to z mil jayega. kabhi backend ka 6999 rs lete hai
Just a quick note, you can use any data for this video. I don't own this data. Half of it was taken from online and half of it was generated by ChatGPT. Data is not important here, these questions and use cases are important and these were were totally designed by me.
Thanks and please share 😁
gist.github.com/hiteshchoudhary/a80d86b50a5d9c591198a23d79e1e467
"08:30" - Create collection in Mongodb cluster and inserting data via Mongodb extension from vs code
"15:14" - How to use aggregation pipeline inside Mongodb
* Use $ sign with operator and field name*
"18:38" - count operator with match "31:19" - sum with grouping avoid count "48:46"- Avoid using count with group bad
"22:15" - grouping by _id with "$filed" "24:06"- grouping all by null
"24:42" - grouping and getting avg via $avg
"33:02" - filtering on 2nd stage via sort
" 35:36" - summarizing questions
"51:52" - Nested drilling and sorting and limiting***
question is, how do we put it in code if you are using node.js for example?
I'm quite impressed with this video. I tried learning the MongoDB aggregation pipeline two years ago. I could not grasp it. With this video, I am confident to apply it to my Node.js backend projects with ease. It has also helped to learn how to use the MongoDB docs. With this, I will watch your other videos due to your easy way of teaching. More grease to your elbow.
Some additional tips
1) Always think TWICE when you are using operators like "$unwind' because it is very costly operator because it creates multiple copies of a same documents. Try to think some other possible solution. Some costly operators are: "$lookup", "$unwind", "$facet", etc.
2) It is a best practice to use $project after the $group stage in the pipeline because "by default, mongodb return a BSON object and not a JSON object" and BSON object have more properties than a JSON object. So using the $project, you can get the JSON object You can study this point for more knowledge.
3) If the size of your document is big, then always use ".allowDiscUse(true)" in your aggregation pipeline.
4) When dealing with larger chunks of data, use "cursor" and "batchSize" approach.
Although not always used, the .allowDiskUse(true) option causes MongoDB to create temporary files on disk and use these files to perform aggregation operations. Since disk I/O is much slower than memory I/O, In some cases, allowing disk usage may strain performance.
Ya using unwind can cuases problem too so for that need to know about arrayElment like operators ,the point you are saying totally aggree with that
tx for this information i never know that and I use this operators in many queries from now on I will mind this things before using
how did u got so much in depth knowledge?
I don't understand what kind of content people want in the world of paid classes? These videos are totally free. is this the reason of not getting credit? Let's appreciate his explanation and please show some support i don't want him to stop making videos.
Its really very very underrated, it should have its views in millions. If anyone wants to learn anything useful for MongoDB this is the only video. beautifully explained
Gratitude to Hitesh Choudhary for the insightful MongoDB aggregation pipeline tutorial! His expertise and clear explanations have been instrumental in enhancing my understanding of this powerful feature. Thank you, Hitesh, for your valuable contribution to the developer community!"
Best series on the mongodb aggression pipeline on the internet. Thank you so much Hitesh sir ❤
Guruji aapki is series ki first video se hi dekh rha hu
Thank you very much for teaching it this way by solving scenario/requirement based questions, rather than just talking about all the operators present in mongodb.
One of the best videos on aggregation. Thanks a lot sir Ji....❤
At 49:18 , Just wanted to tell, We can count No. of males and females using this also
[
{
$group: {
_id: '$gender',
count: {
$count: {}
}
}
}
]
But $count is generally used for counting no of documents in a stage.
In grouping use $sum instead of $count
@@AliHaider-tr9rm Yup
Hi Hitesh, thank you for such an informative video about MongoDB Aggregration.
I am new to MongoDB and this is very helpful.
For those who want to take it step further to display only the author_name instead of the whole object 🤓 :
[
{
$lookup: {
from: "authors",
localField: "author_id",
foreignField: "_id",
as: "author_details"
}
},
{
$addFields: {
author_details: {$arrayElemAt: ["$author_details", 0]}
}
},
{
$addFields: {
author_name: "$author_details.name"
}
},
{
$project: {
author_name: 1, id: 1, genre: 1, author_id: 1, title: 1
}
}
]
This is understated series...u made aggression so easy ❤❤
I am here after completing the Aggregation and pipelines video on Chai or Code . Really Sir Nobody can't teach as you teach, I paid 80k for full-stack dev and now I am a Full-Stack dev but really sir I have learned all things like JavaScript, ReactJs and BackEnd from you . Really Sir you are my hero and I am your fan 🥺
You help me a lot in learning MongoDB operations besides those for CRUD. I am more confident in using aggregation pipeline to collect statistic information now. Thanks you for your work! Expecting your new video on Tailwindcss...
This is best video to learn MongoDB pipeline. Thankyou sir.........
This is gold. This is the best tutorial on MongoDB out there. It is nice and easy to follow thank you, bro🙏🙏
Really good course! Love your energy, very easy to follow along with the different missions
Glad you enjoy it!
Nice video sir! Will surely implement this in my side project!
Guruji aap aap mahaan hoo❤❤
First, thank you for your excellent explanation, I loved the course, enjoyed it a lot, and learned from it. but I would like to add a point, you said at the beginning of the course that this tutorial is for beginners which is not necessary because, this is my first time studying MongoDB aggregation and MongoDB in general, but I do have a background in Software Enginnering. However, I find the course perfect for first learning and global all the basics needed to start working with MongoDB Aggregations, but not enough for more advanced and complex queries. so I recommend you to add a course for advanced and complex queries. we will appreciate it a lot. Thank you!!!
Thank you so so much Man! Such incredible work! WE ARE HAPPY WE HAVE PEOPLE LIKE YOU ON THIS PLANET!
Thanks for your unique way of tutorials, with practical implementation and assignments. Learnt MongoDB and feeling confident in same. Also this helped me in Javascript Backend assignment.
Really liked your way of teaching 😇
You taught me about pipeline aggregation in mongo db with detailed explanation....🎉 Thanks 🎉
Great video on aggregation. Thank you Hitesh! I think we can have more scenarios like operations on array of objects (and when some fields don't exist in some documents). These are more challenging in real life.
omg, I can't believe this is the best video on MongoDB aggregation pipeline
Great tutorial I have ever seen. Thank you a lot for this precious tutorial.
thank you very much for sharing, this is very very very very insightful, you 've just saved me a lot of time of wondering up and down to understand aggregation pipeline
You are a career maker. love from UAE
This video is awesome 😁😁
Thanks Hitesh
I think you taught aggregtion better in english compared to tut on chai aur code
you have nailed it, Bro! ❤🔥
Amazing way of teaching. Thank you so much!
Thanks much Hitesh
I just needed this! thanks so much!
Thank you sir. This vid took my mongo knowledge at next level ❤❤
Really helpful video! I learned alot
Great session
Thank you from Senegal
Thank you very much. It helps me a lot
this can be another way the question
Q. number of users which have "ad" as a tag at index 2
[
{
$unwind: {
path: "$tags",
includeArrayIndex: "arrayindex",
},
},
{
$match: {
$and: [
{
arrayindex: 1,
},
{
tags: "ad",
},
],
},
},
{
$count: 'users'
}
]
Can u make video on indexing too
Thanks so much for this tutorial.Could you take it a little further by actually writing a backend NodeJs to utilize those query results of the aggregation.I mean how to use it in the backend
in node you can use it like you might have used products.find() method or products.findByID() method, in the same way you can use product.Aggregate() and inside parenthesis write your aggregation query. If that helps ✌.
@@sidhantdhyani9567 : Perfect!!!! That solves my query and it has helped me so much. Now i am beginning to like mongodb.
Thanks for the tutorial ❤.
Excited 🎉
great explanation sir
Keep watching
Thanks a lot sir for this tutorial❤❤
thank you sir ♥ ♥
The video helped me a lot to complete your JS backend assignment.
Your ChaiAurBackend series is awesome, too
Wow! wonderful course. Can i like more than once?
Thank you sir, for important tutorial
Can you do video on how to use indexes on aggregation pipeline
awesome content
hii sir love from chai aur code😃😆
we want more videos on MongoDB Aggregation Pipeline
Came for the MongoDB, stayed for the viiibe :)
[
{
$unwind: {
path: "$tags",
}
},
{
$group: {
_id: "$_id",
count: {
$sum: 1
}
}
},{
$group: {
_id: null,
avg: {
$avg: "$count"
}
}
}
]
$unwind: This operator breaks up the array field ($tags) into individual documents. If a document has 3 elements in the tags array, it will create 3 separate documents, each containing one element from the array.
$group: The first $group groups these documents back together by their original _id. It counts how many documents were created for each _id, which corresponds to the number of elements in the tags array for each user.
$group: The second $group aggregates these counts into a single document and calculates the average ($avg) number of tags per user.
east or best bhai is best
Its amazing ❤
Helpful, Thanks
🤟🤘
thank you so. much sir
Thank you sir ❤
Great! Thanks.
Thanks ❤❤
great course
great tutorial tysm
best video
What are the steps to create mongodb atlas
thank you sir :)
thanks
Sir can you make a video on Docker & K8s? That would be really helpful :)
Ok sir
Where can i get the list of questions??
nice video
Sir, I am not able to access lco app and website.Its saying contact Admin.Please help
wow😮😮
Sir, could ypu help us with a mongo db aggregation project as it is almost impossible to find a good one it will help us get to know more how this is used in production live projects
It’s going on at my Hindi channel
If anyone is not able to use the regex expression as shown in the video use this instead
[
{
$match: {
phone:{
$regex: "^\\+1"
}
}
},
{
$count:"Number starting from +1"
}
]
I miss LCO
I am not able to find any good D3 js tutorial video ?? Any suggestions.
❤❤
Sir es video ko hindi mai layea please so that I can learn properly
Sir 1 on 1 kese baat kr skte hai aap se ?
❤
Bro can make me software enginner in month!
Sir app aggregation ki Hindi me video bda doo
Hello ❤sir ji
Sorry sir I cannot purchase your paid course bacause you say that real developer is that who do self not watch only tutorial
❤❤❤❤❤❤❤❤❤❤❤
👍
It looks like array.map().filter().reduce().
Sir mongo DB को हिंदी मैं लाहो sir plz......
Hey
Not able to understand, what is being happening here . Kabhi kabhi bolte hai aap free course sa kuch a to z mil jayega. kabhi backend ka 6999 rs lete hai
though course is good
ok
#chaiaurcode
you talk too much,
Exteremely grateful for such content! 🫡❤
Hi sir
Hlo sir ji