💚 $project stage:
In the MongoDB aggregation framework, the $project stage is used to transform or reshape the documents in the collection during the aggregation pipeline. It allows us to include or exclude documents, create a new field or rename a field, and more.
✌ Syntax:{ $project: { field1: 1, // Include field1 field2: 0, // Exclude field2 field3: "$age" //expression or operation that perform more complex transformation or operation // You can add more fields and transformations here } }
💧 Renaming a field:
{
$project: {
newFieldName: "$oldFieldName"
}
}
💧 Created a new calculated field:
{
$project: {
newField: { $add: ["$field1", "$field2"] }
}
}
Explanation:
{
"_id": 1,
"totalAmount": 100,
"discount": 10
},
{
"_id": 2,
"totalAmount": 200,
"discount": 20
}
db.orders.aggregate([
{
$project: {
_id: 1,
totalAmount: 1,
discount: 1,
finalAmount: { $subtract: ["$totalAmount", "$discount"] }
}
}
]);
Output:
{
"_id": 1,
"totalAmount": 100,
"discount": 10,
"finalAmount": 90
},
{
"_id": 2,
"totalAmount": 200,
"discount": 20,
"finalAmount": 180
}
💧 Created a new field:
db.persons.aggregate([
{$project: {
_id: 0,
name: 1,
personInfo: {
gen: "$gender",
color: "$eyeColor",
address: "$company.location.country"
}}},
])
Post a Comment