Introduction to MongoDB $stdDevPop Operator
$stdDevPop
is an operator in the MongoDB aggregation framework used to calculate the population standard deviation of all numerical fields in a collection. It returns the population standard deviation of all numerical values.
Syntax
The syntax for the $stdDevPop
operator is as follows:
{ $stdDevPop: <expression> }
where <expression>
is a numerical expression that can be a field name, number, or any expression that returns a number.
Use Cases
The $stdDevPop
operator can be used in scenarios where one needs to understand the distribution of numerical fields in a collection, such as in statistical data analysis.
Examples
Here are two examples of the $stdDevPop
operator:
Example 1
Suppose we have a student grades collection that includes the name and score of each student. We can use the $stdDevPop
operator to calculate the population standard deviation of all students’ scores:
db.grades.aggregate([
{
$group: {
_id: null,
stdDev: { $stdDevPop: "$score" }
}
}
])
The above code groups all scores together using the $group
operator and applies the $stdDevPop
operator to calculate the population standard deviation of all scores. The query output is as follows:
{ "_id" : null, "stdDev" : 14.82143377436973 }
Example 2
Suppose we have a sales dataset that includes the quantity and price of each product sold. We can use the $stdDevPop
operator to calculate the population standard deviation of all products’ quantities:
db.sales.aggregate([
{
$group: {
_id: null,
stdDev: { $stdDevPop: "$quantity" }
}
}
])
The above code groups all quantities together using the $group
operator and applies the $stdDevPop
operator to calculate the population standard deviation of all quantities. The query output is as follows:
{ "_id" : null, "stdDev" : 9.065307024306163 }
Conclusion
The $stdDevPop
operator is a powerful tool in the MongoDB aggregation framework used to calculate the population standard deviation of all numerical fields in a collection. It can help us understand the distribution of numerical fields and provide useful insights in statistical data analysis and other fields.