重要
サーバーサイド JavaScript の非推奨化
MongoDB 8.0以降、サーバーサイド JavaScript 関数( $accumulator 、 $function 、 $where )は非推奨です。 MongoDB では、これらの関数を実行すると警告がログに記録されます。
MongoDB 5.0 以降では map-Reduce は非推奨となります。
MongoDB は、JavaScript コードをサーバー側で実行する次のコマンド、メソッド、演算子を提供します。
mapReduceと対応するmongoshメソッド 。詳細については、「db.collection.mapReduce()Map-Reduce 」を参照してください。$whereドキュメントをクエリするために JavaScript 式または関数を評価する 演算子 。$accumulatorと$functionの集計操作を使用し、ユーザーがカスタム集計式を定義できるようにします。
また、サーバー上で実行するmongosh にJavaScriptファイルを指定することもできます。詳細については、「 サーバー上の インスタンスを介して .jsファイルの実行 」を参照してください。mongosh
注意
MongoDB の JavaScript
これらのメソッドは JavaScript を使用しますが、MongoDB とのほとんどのやり取りでは JavaScript は使用されず、やり取りするアプリケーションの言語で慣用的なドライバーが使用されます。
JavaScriptコードをサーバー側で実行する必要がない場合は、JavaScriptのサーバー側実行を無効にするを参照してください。
注意
サーバー上の mongosh インスタンスを介して .js ファイルを実行
JavaScript (.js )ファイルをmongosh に指定すると、サーバー上でファイルを実行できます。これは、バッチする管理作業を実行するのに適した手法です。サーバー上でmongosh を実行し、ローカルホスト インターフェース経由で接続すると、接続は高速で 低レイテンシです。
JavaScript のサーバー側実行を無効にする
JavaScript のサーバー側実行をすべて無効にすることができます。
mongodインスタンスの場合は、コマンドラインで--noscriptingオプションを渡すか、構成ファイルでsecurity.javascriptEnabledを false に設定します。mongosインスタンスの場合は、コマンドラインで--noscriptingオプションを渡すか、構成ファイルでsecurity.javascriptEnabledを false に設定します。
動作
同時実行性
同時実行情報については、個々のメソッドまたは演算子のドキュメントを参照してください。 同時実行テーブルも参照してください。
サポートされていない配列関数と文字列関数
MongoDB6.0 では、 サーバーサイドJavaScript 、 、$accumulator $function、$where 式に使用される内部JavaScriptエンジンがMozJS-60 から MozJS-91 にアップグレードされています。 MozJS- に存在した非推奨、非標準の配列関数と string60 関数は、MozJS-91 で一部削除されました。