Ede*_*uer 1 mongodb aggregation-framework
我有几个数字字段需要聚合.假设我的文档结构如下:
_id: 1234,
numValue1: 10,
numValue2: 20,
numValue3: 30,
numValue4: 40
Run Code Online (Sandbox Code Playgroud)
如果我想使用其中一个数字字段向我的管道添加计算字段,我可以这样做:
db.myCollection.aggregate(
{
$project : {
someComputedField : { $add:["$numValue1", 15] }
}
})
Run Code Online (Sandbox Code Playgroud)
如果我想根据其中两个字段添加一个计算字段,我知道我可以这样做:
db.myCollection.aggregate(
{
$project : {
someComputedField : { $add:["$numValue1", "$numValue2"] }
}
})
Run Code Online (Sandbox Code Playgroud)
现在,我的问题是如果我需要做$ numValue1 + $ numValue2 + $ numValue3 + $ numValue4?
或者更有趣的是$ numValue1*($ numValue2 + $ numValue3)/ $ numValue4?
$add 可以接受多个值,所以第一种情况是:
someComputedField: {$add: ['$numValue1', '$numValue2', '$numValue3', '$numValue4']}
Run Code Online (Sandbox Code Playgroud)
你可以嵌套运算符,所以第二种情况是:
someComputedField: {
$divide: [
{$multiply: [
'$numValue1', {$add: ['$numValue2', '$numValue3']}
]},
'$numValue4'
]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1762 次 |
| 最近记录: |