The $out stage
The $out stage is used to export output documents of an aggregation query to a new collection. It must always be last stage of your aggregation pipeline.
To illustrate how a full aggregation query works with an $out stage, we recommend building other stages first:
- Stage 1 – Join two collections using
$lookup - Stage 2 – Project fields using
$project
$out syntax
When you’re ready to save your aggregation pipeline results, you can write the $out command which has a straightforward syntax:
{ $out: "<output-collection>" }
Replace <output-collection> with your desired new collection name.
$out in Aggregation Editor
Follow the steps in our $project stage example. To finish off our three-stage example, we will add a third and final stage to our pipeline.
Click on Add stage. Choose $out in the Operator dropdown menu.

Replace the code, making sure to remove the curly braces, with:
"customers-affordable-housing"
This is the collection name where we’d like to store our aggregation query’s output documents.
Click on the Run button in the toolbar to run the full pipeline.

Refresh your current database by right-clicking and choosing Refresh Selected Item or Refresh All.
You should then see your new collection on the list.

$out in mongo shell
To see how $out looks like within the full MongoDB aggregation query, let’s go back to the Aggregation Editor and click on Query Code.

You should see the mongo shell code with the $out stage included, which you can easily paste into IntelliShell.
db.getCollection("customers").aggregate(
[
{
"$lookup" : {
"from" : "housing",
"localField" : "address.zip_code",
"foreignField" : "Zip Code",
"as" : "address.zip_code.affordable_housing_options"
}
},
{
"$project" : {
"first" : 1.0,
"last" : 1.0,
"address.city" : 1.0,
"address.state" : 1.0,
"address.zip_code.affordable_housing_options.Property Type" : 1.0,
"address.zip_code.affordable_housing_options.Property Name" : 1.0,
"address.zip_code.affordable_housing_options.Units" : 1.0,
"address.zip_code.affordable_housing_options.Zip Code" : 1.0
}
},
{
"$out" : "customers-affordable-housing"
}
],
{
"allowDiskUse" : false
}
);