MongoDB のドキュメントには、ストアド ファンクション機能の使用は推奨されないと記載されています。この質問にはいくつかの理由がありますが、それらはすべて「eval
悪」に要約されるようです。
MapReduce クエリでサーバー側関数を使用してはならない特定の理由はありますか?
system.js 関数は、デフォルトで Map Reduce ジョブで使用できます ( https://jira.mongodb.org/browse/SERVER-8632では、2.4.0rc のわずかな不具合に注意してください)。
eval
それらはネイティブの V8/Spidermonkey 環境内では実際には編集されていないため、技術的にはそれらの一部も失われています。
いいえ、実際の問題はありません。Map Reduce 内でネイティブのように実行され、他の JavaScript と同じように高速かつ「適切に」実行されるはずです。実際、system.js
コレクションは map reduce ジョブのコードを格納するように設計されており、後で「ストアド プロシージャ」のハックとして使用されるようになります。