1

pow(3, 6)集計フレームワーク パイプラインで数値 ( など) のべき乗を計算する必要があります。

ただし、MongoDB は集計フレームワークで $pow 数学演算子を提供していないようです。これが利用可能な数学演算子で提供されていないことに驚いています。

回避策について何か提案はありますか? または、これを可能にするドキュメントの何かを見逃していませんか?

4

3 に答える 3

3

代わりにpow(3, 6)、もちろん次のことができます。

> db.so.insert( { value: 5 } );
> db.so.aggregate( [
    { $project: { 
        res: { 
            $multiply: [ '$value', '$value', '$value', '$value', '$value', '$value' ] 
        } 
    } } 
] );

結果:

{
    "result" : [
        {
            "_id" : ObjectId("51ff812723daeb048e4b2f26"),
            "res" : 15625
        }
    ],
    "ok" : 1
}

JIRA チケットが見つからないので、http://jira.mongodb.org/browse/SERVERでこの機能を提案してください: https://jira.mongodb.org/browse/SERVER-8568 https://github.com/derickr/mongo/tree/aggregation-framework-new-operators-pow-round-sqrtから入手できる master に対するパッチを作成しました

于 2013-08-05T10:44:38.143 に答える
0

私は同じ問題に直面していました。実際、pow() 関数と cos() 関数の両方が必要でした。

今のところマップ/リデュース関数を使用して集計を行うことに落ち着く以外に解決策はありませんでした。その場合、Javascript の Math.pow() と Math.cos() を使用できます。

于 2013-08-09T22:02:07.470 に答える