Aggregation
Pipeline
Unix pipeline
Piping command line operations
ls -al | grep '^d‘ |
Pipeline
• Piping aggregation operations
$match | $sort | $skip | more
Stream of documents Result document
Example
{
title : “mongo DB " ,
author : "bob" ,
posted : new Date() ,
pageViews : 5 ,
tags : [ "fun" , "good" , "fun" ] ,...
1. Count – return number of documents in collection.
> db.user.count();
you can also pass query, and MongoDB will count nu...
6. $project
Include, exclude or rename fields
Insert computed fields
Create sub-document fields
selecting and excluding fi...
{
_id: 375,
title: “mongo DB",
ISBN: "9781857150193",
available: true,
pages: 218,
subjects: [
“Test",
“Pune",
"1920s"
],
...
Insert computed field
Db.blog.aggregate( {
“$project” : { title : 1 ,
newPageViews : { $add : *“$pageViews” ,10]}
}
}
Rename Page Views
db.blog.aggregate( { title : 1,
newPageViews : “$pageViews”
} )
Create and Populate new Field that hold ...
Groups
Each document in collection has following form
{
"_id": “413710",
"city": “Pune",
"state": “MH",
"pop": 5574,
"loc"...
Group
db.blog.aggregate( { $group :
{ _id : "$state",
totalPop : { $sum : "$pop" }
}
},
{
$match : {totalPop : { $gte : 10...
Usage and Limit
• collection.aggregate() method
– Mongo shell
– Most drivers
• aggregate database command
Limitations
Result limited by BSON document size
Final command result
Intermediate shard results
Pipeline operator memory ...
Map Reduce
• Map reduce operation handle complex
aggregation task.
Upcoming SlideShare
Loading in...5
×

Aggregation in MongoDB

770

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
770
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Aggregation in MongoDB

  1. 1. Aggregation
  2. 2. Pipeline Unix pipeline Piping command line operations ls -al | grep '^d‘ |
  3. 3. Pipeline • Piping aggregation operations $match | $sort | $skip | more Stream of documents Result document
  4. 4. Example { title : “mongo DB " , author : "bob" , posted : new Date() , pageViews : 5 , tags : [ "fun" , "good" , "fun" ] , language : “English”, other : { foo : 5 } }
  5. 5. 1. Count – return number of documents in collection. > db.user.count(); you can also pass query, and MongoDB will count number of result for that query. 2. Distinct The distinct commands find all the distinct values for given key in collection. db.runCommand ( {“distinct” : “collection name” ,”key” : “key field” } ) 3. Match >db.blog.aggregate({$match : {pageViews : {$gt : 1 ,$lt :50 } } } ) 4. Limit > db.blog.aggregate({$limit : 5 } ) 5. Sort >db.blog.find( ).sort({title : 1} )
  6. 6. 6. $project Include, exclude or rename fields Insert computed fields Create sub-document fields selecting and excluding fields >db.blog.aggregate{ { “$project” : { _id : 0 , title : 1 , language : 1} } }
  7. 7. { _id: 375, title: “mongo DB", ISBN: "9781857150193", available: true, pages: 218, subjects: [ “Test", “Pune", "1920s" ], language: "English" } { title: “mongo DB, language: "English" }
  8. 8. Insert computed field Db.blog.aggregate( { “$project” : { title : 1 , newPageViews : { $add : *“$pageViews” ,10]} } }
  9. 9. Rename Page Views db.blog.aggregate( { title : 1, newPageViews : “$pageViews” } ) Create and Populate new Field that hold subfields db.blog.aggregate( {"$project" : { title : 1 , stats:{pv : "$pageViews" , foo : "$other.foo" } } })
  10. 10. Groups Each document in collection has following form { "_id": “413710", "city": “Pune", "state": “MH", "pop": 5574, "loc": [ -74.016323, 40.710537 ] }
  11. 11. Group db.blog.aggregate( { $group : { _id : "$state", totalPop : { $sum : "$pop" } } }, { $match : {totalPop : { $gte : 10*1000 } } } )
  12. 12. Usage and Limit • collection.aggregate() method – Mongo shell – Most drivers • aggregate database command
  13. 13. Limitations Result limited by BSON document size Final command result Intermediate shard results Pipeline operator memory limits Some BSON types unsupported Binary, Code, deprecated types
  14. 14. Map Reduce • Map reduce operation handle complex aggregation task.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×