6

実際、私はいくつかの計算を行うために map reduce を使用しています。計算に使用できるパイプライン演算子がないため、集計フレームワークではそれを行うことができません。

カスタム パイプライン オペレータを作成することは可能ですか?

前もって感謝します

4

1 に答える 1

9

答えは、「可能」の定義によって異なります。

1) 箱から出して:いいえ。

MongoDB 2.2 と同様に、新しいパイプライン オペレーターを追加できるエンド ユーザー機能はありません。Aggregation Framework とパイプライン演算子は C++ で実装され、MapReduce (JavaScript で実装) などの以前の集計オプションよりもパフォーマンスと同時実行性が向上しています。

2) C++ で書きたい場合: YES (ただし簡単ではありません)。

MongoDB はオープン ソース プロジェクトであるため、C++ コードに飛び込んで追加機能を自分で実装するオプションがあります (参照: src/mongo/db/pipeline)。MongoDB プロジェクトへの貢献に関するガイドラインがあり、進行中の開発が非常に活発であることに注意してください。

カスタム関数を作成したい場合、現時点での最善の選択肢は、引き続きMapReduceを使用することです。

上記のオプションに関係なく、必要なパイプライン オペレーターまたは機能がある場合は、 MongoDB Jira SERVER プロジェクト(コンポーネント: )で提案してくださいAggregation Framework。これにより、他のユーザーが機能リクエストにコメントしたり、ウォッチしたり、投票したりできるようになります。機能を自分で実装することになった場合は、プル リクエストで Jira 機能の説明を参照できます。新しい機能のリクエストを送信する前に、おそらくこの機能が既に提案されているかどうかを検索する必要があります。

たとえば、次のようなリクエストがすでにあります。

于 2012-11-28T20:00:34.687 に答える