$covarianceSamp
聚合运算符返回使用$setWindowFields
阶段窗口中的文档计算的两个数值表达式的样本协方差。
$covarianceSamp
运算符只能用于$setWindowFields
阶段。
语法
{
$covarianceSamp: {
[
<numeric expression 1>,
<numeric expression 2>
]
}
}
使用
$covarianceSamp
使用时遵守以下规则:
- 会忽略窗口中非数值、null和缺失字段的值
- 如果窗口只有一个文档,则返回
null
- 如果窗口为空,返回
null
- 如果窗口包含
NaN
则返回NaN
- 如果窗口包含一个或多个全是正无穷或全是负无穷值,返回的无穷值的符号与窗口值一致
- 如果窗口包含的无穷值符号不同,返回
NaN
- 如果窗口包含小数值,返回小数值
- 如果以上都不适用,返回双精度数
返回值的优先顺序:
- NaN
- 无穷
- 小数
- 双精度数
举例
使用下面的命令创建cakeSales
,它包含了在加利福尼亚California (CA)
和华盛顿Washington (WA)
的蛋糕销售记录:
db.cakeSales.insertMany( [
{
_id: 0, type: "chocolate", orderDate: new Date("2020-05-18T14:10:30Z"),
state: "CA", price: 13, quantity: 120 },
{
_id: 1, type: "chocolate", orderDate: new Date("2021-03-20T11:30:05Z"),
state: "WA", price: 14, quantity: 140