乘以行并搜索查询

时间:2019-05-09 14:44:58

标签: mongodb

我必须将行与数字相乘,然后再过滤数据。

我必须将SAL字段中的薪水乘以12以得出年度总数,然后找出哪个大于30k。

我已经尝试过乘法运算,但是在获得无法过滤的数据后,我也尝试使用match关键字。

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

db.EMP.aggregate([{$project:{total:{$multiply:["$SAL",12]}}} ,{$match:{"$total":{$gte:3000}}}] )


db.EMP.aggregate([{$project:{total:{$multiply:["$SAL",12]}}} ,{$gt:{"$total",30000}}] )

MongoDB的数据:

Data for MongoDB

1 个答案:

答案 0 :(得分:0)

您使用$match进行的查询非常接近,但是您应该使用total而不是$total,因为根据the $match docs

  

$ match查询语法与读取操作查询相同   句法;即$ match不接受原始聚合表达式。

所以您的管道应该是:

db.EMP.aggregate([
  { $project: { total : { $multiply : ["$SAL", 12 ] } } },
  { $match: { total : { $gt: 30000 } } }
])