首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >乘以行和搜索查询

乘以行和搜索查询
EN

Stack Overflow用户
提问于 2019-05-09 22:44:58
回答 1查看 38关注 0票数 0

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

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

我已经尝试了乘法,但在获得无法过滤的数据后,我也尝试使用匹配关键字。

代码语言:javascript
复制
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的数据:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-10 03:37:58

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

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

所以你的管道应该是:

代码语言:javascript
复制
db.EMP.aggregate([
  { $project: { total : { $multiply : ["$SAL", 12 ] } } },
  { $match: { total : { $gt: 30000 } } }
])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56062016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档