Skip to content
Studio 3T - The professional GUI, IDE and client for MongoDB
  • Tools
    • Aggregation Editor
    • IntelliShell
    • Visual Query Builder
    • Export Wizard
    • Import Wizard
    • Query Code
    • SQL Query
    • Connect
    • Schema Explorer
    • Compare
    • SQL ⇔ MongoDB Migration
    • Data Masking
    • Task Scheduler
    • Reschema
    • More Tools and Features
  • Solutions
  • Resources
    • Knowledge Base
    • MongoDB Tutorials & Courses
    • Tool/Feature Documentation
    • Blog
    • Community
    • Testimonials
    • Whitepapers
    • Reports
  • Contact us
    • Contact
    • Sales Support
    • Feedback and Support
    • Careers
    • About Us
  • Store
    • Buy Now
    • Preferred Resellers
    • Team Pricing
  • Download
  • My 3T
search

Academy 3T

  • Explore our courses
    • MongoDB 101: Getting Started
    • MongoDB 201: Querying MongoDB Data
    • MongoDB 301: Aggregation
  • Get certified

Introducing the Aggregation Editor

MongoDB 301: Aggregation Introducing the Aggregation Editor

In the first section of this course, you were introduced to the mongo shell aggregate method, which enables you to aggregate document data within a specific collection. The section’s exercises demonstrated how to build a basic aggregate statement in IntelliShell, using data from the customers collection in the sales database. In that statement, you filtered the documents by age, grouped the filtered documents by state, found the total number of transactions per state, and sorted the results in descending order based on the number of transactions. After you finished creating the aggregate statement, you saved it to a file named states_transactions.js.

In this section, you’ll import the file into the Aggregation Editor, or more precisely, import the aggregate statement within the file. You’ll then use the editor to modify the statement, adding two new stages and updating an existing one. In this way, you’ll be able to see how the statement in the Aggregation Editor compares with the one you created in IntelliShell and how easy it is to modify an aggregate statement in the Aggregation Editor. This section will also help you better understand how you can take different approaches to building an aggregate statement in Studio 3T, as well as how you can use multiple tools to build and modify a single statement.

By the end of this section, you will learn how to

  • Import an aggregate statement into the Aggregation Editor
  • Replace a field in the aggregation pipeline
  • Reorder the fields in the aggregation pipeline 
  • Change the sort order in the aggregation pipeline 

What you will need

  • Access to a MongoDB Atlas cluster
  • Access to the states_transactions.js file you created in the first section

Working with the Aggregation Editor

The Aggregation Editor is an intuitive graphical user interface (GUI) that simplifies the process of building and modifying aggregate statements and their pipelines. The editor breaks the stages of the aggregation pipeline into discrete steps that each have their own tab for working with that stage. On this tab, you can easily edit the expression associated with the stage’s operator, without affecting the rest of the pipeline. 

A stage’s tab also lets you view the input and output data for that stage. In this way, you can see the results of your changes as soon as you make them and compare those results to the data before the changes were made. You can even assign a different operator to a stage and then modify its expression. In addition, the Aggregation Editor lets you move stages up or down, add stages at any point in the pipeline, temporarily exclude stages, or delete stages from the pipeline.

To get a sense of how an aggregate statement appears in the Aggregation Editor, we’ll start with a simple example. The following statement includes three aggregate operators, one for each stage in the aggregation pipeline:

You can think of the Pipeline tab as your best starting point for working with an aggregate statement. The tab lists all the stages in the statement’s aggregation pipeline, in the order those stages are executed. Each stage listing includes the operator and its associated expression. 

On the Pipeline tab, you can move a stage up or down by selecting the stage and clicking the up or down arrow on the Aggregation Editor toolbar. In addition, you can add, delete, duplicate, exclude, or include a stage. You can also run the aggregate statement at any point and view the results in the tab’s lower pane. The interface makes each operation intuitive and easy to carry out.

The Aggregation Editor automatically adds a tab for each stage in the pipeline. The tab’s name is based on the stage’s position within the pipeline and its associated operator. For example, the first stage uses the $match operator, so the tab is named 1: $match, as shown in the following figure. 

A stage’s tab shows the name of the operator and the expression associated with that operator. You can edit the expression or switch to another operator. When working on a stage, you need only focus on the operator’s expression. The Aggregation Editor handles all other statement elements, building the statement in the background as you build your stages.

For each stage, you can also retrieve the stage’s input data and output data. When you retrieve a stage’s input data, the Aggregation Editor runs the pipeline up to but not including the current stage. When you retrieve a stage’s output data, the Aggregation Editor runs the pipeline up to and including the current stage. In this way, you can compare the before-and-after data so you can see how this stage affects your results.

For example, the figure above indicates that the input data includes 1,000 documents but the output data includes only 21 documents. The stage filters out all documents except those with an address.state value that equals Washington. In other words, the collection contains only 21 documents with an address.state value that equals Washington, so only those results are included in the stage’s output. That output is then used as input for the next stage in the pipeline (unless the current stage is the last stage).

In addition to the stage tabs, the Aggregation Editor also includes tabs for setting statement options and viewing the query code and pipeline execution plan. However, you’ll be doing most of your work on the Pipeline tab and the individual stage tabs as you refine your aggregate statements and view their results.

See Also
  • Aggregation Editor
  • The Beginner’s Guide to MongoDB Aggregation
  • Supported MongoDB Aggregation Operators and Stages
  • Aggregation Pipeline Quick Reference
  • db.collection.aggregate()

Lesson Content
0% Complete 0/4 Steps
Exercise 1: Importing an aggregate statement into the Aggregation Editor
Exercise 2: Replace a field in the aggregation pipeline
Exercise 3: Reorder the fields in the aggregation pipeline
Exercise 4: Changing the sort order in the aggregation pipeline
Introducing the Aggregation Editor: Test your skills
Previous Lesson
Back to Course
Next Topic
  • Course Home Expand All
    Building a Basic Aggregation
    4 Topics | 1 Quiz
    Exercise 1: Filtering the documents in the aggregation pipeline
    Exercise 2: Grouping the documents in the aggregation pipeline
    Exercise 3: Sorting the documents in the aggregation pipeline
    Exercise 4: Adding processing options to the aggregation
    Building a Basic Aggregation: Test your skills
    Introducing the Aggregation Editor
    4 Topics | 1 Quiz
    Exercise 1: Importing an aggregate statement into the Aggregation Editor
    Exercise 2: Replace a field in the aggregation pipeline
    Exercise 3: Reorder the fields in the aggregation pipeline
    Exercise 4: Changing the sort order in the aggregation pipeline
    Introducing the Aggregation Editor: Test your skills
    Working with Arrays in the Aggregation Pipeline
    5 Topics | 1 Quiz
    Exercise 1: Using expression operators to filter input documents
    Exercise 2: Unwinding an array to create individual documents
    Exercise 3: Grouping array values and generating a document count for each group
    Exercise 4: Writing pipeline results to a new collection
    Working with Arrays in the Aggregation Pipeline: Test your skills
    MongoDB 301 Mid-Course Feedback
    Adding Lookup Data to the Aggregation Pipeline
    4 Topics | 1 Quiz
    Exercise 1: Adding lookup data to the aggregation pipeline
    Exercise 2: Converting string values in one of the lookup fields to integers
    Exercise 3: Adding a computed ratio field based on the converted lookup field
    Exercise 4: Limiting the number of returned documents
    Adding Lookup Data to the Aggregation Pipeline: Test your skills
    Working with Reschema for MongoDB
    4 Topics | 1 Quiz
    Exercise 1: Setting up a reschema unit that includes lookup data
    Exercise 2: Defining a target collection in the reschema unit
    Exercise 3: Adding and scheduling a task to create the target collection
    Exercise 4: Running an aggregate statement against the target collection
    Working with Reschema for MongoDB: Test your skills
    Reporting with Studio 3T Aggregations
    3 Topics | 1 Quiz
    Exercise 1: Creating a view based on an aggregation query
    Exercise 2: Exporting a collection as a .csv file for use by a third-party tool
    Exercise 3: Visualizing collection data in MongoDB Charts
    Reporting with Studio 3T Aggregations: Test your skills
    Course Extras
    Return to MongoDB 301: Aggregation
  • Studio 3T

    MongoDB Enterprise Certified Technology PartnerSince 2014, 3T has been helping thousands of MongoDB developers and administrators with their everyday jobs by providing the finest MongoDB tools on the market. We guarantee the best compatibility with current and legacy releases of MongoDB, continue to deliver new features with every new software release, and provide high quality support.

    Find us on FacebookFind us on TwitterFind us on YouTubeFind us on LinkedIn

    Education

    • Free MongoDB Tutorials
    • Connect to MongoDB
    • Connect to MongoDB Atlas
    • Import Data to MongoDB
    • Export MongoDB Data
    • Build Aggregation Queries
    • Query MongoDB with SQL
    • Migrate from SQL to MongoDB

    Resources

    • Feedback and Support
    • Sales Support
    • Knowledge Base
    • FAQ
    • Reports
    • White Papers
    • Testimonials
    • Discounts

    Company

    • About Us
    • Blog
    • Careers
    • Legal
    • Press
    • Privacy Policy
    • EULA

    © 2023 3T Software Labs Ltd. All rights reserved.

    • Privacy Policy
    • Cookie settings
    • Impressum

    We value your privacy

    With your consent, we and third-party providers use cookies and similar technologies on our website to analyse your use of our site for market research or advertising purposes ("analytics and marketing") and to provide you with additional functions (“functional”). This may result in the creation of pseudonymous usage profiles and the transfer of personal data to third countries, including the USA, which may have no adequate level of protection for the processing of personal data.

    By clicking “Accept all”, you consent to the storage of cookies and the processing of personal data for these purposes, including any transfers to third countries. By clicking on “Decline all”, you do not give your consent and we will only store cookies that are necessary for our website. You can customize the cookies we store on your device or change your selection at any time - thus also revoking your consent with effect for the future - under “Manage Cookies”, or “Cookie Settings” at the bottom of the page. You can find further information in our Privacy Policy.
    Accept all
    Decline all
    Manage cookies
    ✕

    Privacy Preference Center

    With your consent, we and third-party providers use cookies and similar technologies on our website to analyse your use of our site for market research or advertising purposes ("analytics and marketing") and to provide you with additional functions (“functional”). This may result in the creation of pseudonymous usage profiles and the transfer of personal data to third countries, including the USA, which may have no adequate level of protection for the processing of personal data. Please choose for which purposes you wish to give us your consent and store your preferences by clicking on “Accept selected”. You can find further information in our Privacy Policy.

    Accept all cookies

    Manage consent preferences

    Essential cookies are strictly necessary to provide an online service such as our website or a service on our website which you have requested. The website or service will not work without them.

    Performance cookies allow us to collect information such as number of visits and sources of traffic. This information is used in aggregate form to help us understand how our websites are being used, allowing us to improve both our website’s performance and your experience.

    Google Analytics

    Google Ads

    Bing Ads

    Facebook

    LinkedIn

    Quora

    Hotjar

    Functional cookies collect information about your preferences and choices and make using the website a lot easier and more relevant. Without these cookies, some of the site functionality may not work as intended.

    HubSpot

    Social media cookies are cookies used to share user behaviour information with a third-party social media platform. They may consequently effect how social media sites present you with information in the future.

    Accept selected