将空列与具有值的列相加

时间:2019-05-09 11:55:38

标签: mongodb

我只想确认一下,如果任何一列具有一些空值,而另一列具有值,那么添加它们时答案将是什么, 是NULL,0还是值

我尝试了MongoDB代码,该代码向我显示了三种类型的结果,其中一种结果为NULL,一种结果为0,一种结果显示值

<input type="text" id="txt"> 
<button onclick="test()">test</button>

上面的这个显示值为0

db.EMP.aggregate({$group:{_id:"$ENAME",total:{$sum:{$add:["$SAL","$COMM"]}}}})

此上方显示值为NULL

MongoDB的数据:

Data For MongoDB

我的结果1:

My result 1

我的结果2:

My result 2

1 个答案:

答案 0 :(得分:0)

根据文档$sum

  

忽略非数字值并返回数字的总和   值

$add预期:

  

任何有效的表达式,只要它们解析为所有数字或   数字和日期

因此,如果要处理缺失值或null,则应仅使用$sum

如果您只想分别汇总每个文档中的那些字段,则可以使用$project

db.EMP.aggregate([
  {
    $project: {
      total: {
        $sum: [
          "$SAL",
          "$COMM"
        ]
      }
    }
  }
])

如果您需要对文档进行分组并汇总多个文档,则可以先在$sum阶段分别$group SAL和COMM,然后在{{1} }}:

$sum