2

MongoDB のドキュメントには、ストアド ファンクション機能の使用は推奨されないと記載されています。この質問にはいくつかの理由がありますが、それらはすべて「eval悪」に要約されるようです。

MapReduce クエリでサーバー側関数を使用してはならない特定の理由はありますか?

4

1 に答える 1

0

system.js 関数は、デフォルトで Map Reduce ジョブで使用できます ( https://jira.mongodb.org/browse/SERVER-8632では、2.4.0rc のわずかな不具合に注意してください)。

evalそれらはネイティブの V8/Spidermonkey 環境内では実際には編集されていないため、技術的にはそれらの一部も失われています。

いいえ、実際の問題はありません。Map Reduce 内でネイティブのように実行され、他の JavaScript と同じように高速かつ「適切に」実行されるはずです。実際、system.jsコレクションは map reduce ジョブのコードを格納するように設計されており、後で「ストアド プロシージャ」のハックとして使用されるようになります。

于 2013-09-17T14:59:19.397 に答える