首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在MongoDB的聚合框架中计算数字的幂

在MongoDB的聚合框架中计算数字的幂
EN

Stack Overflow用户
提问于 2013-08-04 09:14:28
回答 3查看 546关注 0票数 1

我需要在我的聚合框架管道中计算一个数字(如pow(3, 6))的幂。

但是,MongoDB似乎没有在聚合框架中提供$pow数学运算符。我很惊讶在可用的数学运算符中没有提供这一点。

有没有人有任何关于变通的建议?或者,我是否在文档中遗漏了允许我执行此操作的内容?

EN

回答 3

Stack Overflow用户

发布于 2013-08-05 18:44:38

当然,你可以这样做,而不是pow(3, 6)

代码语言:javascript
运行
复制
> db.so.insert( { value: 5 } );
> db.so.aggregate( [
    { $project: { 
        res: { 
            $multiply: [ '$value', '$value', '$value', '$value', '$value', '$value' ] 
        } 
    } } 
] );

结果:

代码语言:javascript
运行
复制
{
    "result" : [
        {
            "_id" : ObjectId("51ff812723daeb048e4b2f26"),
            "res" : 15625
        }
    ],
    "ok" : 1
}

我找不到JIRA门票,所以请在http://jira.mongodb.org/browse/SERVER上推荐一个功能,就像这样:https://jira.mongodb.org/browse/SERVER-8568我已经创建了一个针对master的补丁,可以通过https://github.com/derickr/mongo/tree/aggregation-framework-new-operators-pow-round-sqrt获得

票数 3
EN

Stack Overflow用户

发布于 2013-08-10 06:02:07

我也面临着同样的问题;事实上,我同时需要pow()和cos()函数。

我没有看到其他解决方案,只能暂时使用map/reduce函数进行聚合,在这种情况下,我可以使用Javascript的Math.pow()和Math.cos()。

票数 0
EN

Stack Overflow用户

发布于 2015-11-09 13:27:32

在Mongo 3.2Mongo中,您将拥有一个用于聚合框架的本机$pow操作,语法如下:{ $pow: [ <number>, <exponent> ] }

下面是mongo页面中的示例:db.datasets.aggregate( [ { $project: { raisedTo2: { $pow: [ 5, 2 ] } } } ] )

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18038861

复制
相关文章

相似问题

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