ここにはいくつかの問題があります:
1)MongoDBはすべてのドキュメントをBSON形式で保存することに注意してください。また、BSON仕様は、UTF-16エンコーディングではなく、UTF-8文字列エンコーディングを参照していることに注意してください。
参照: http://bsonspec.org/#/specification
2)mongoシェルのJavaScriptドライバーを含むすべてのドライバーは、UTF-8としてエンコードされた文字列を適切に処理する必要があります。 (そうでない場合はバグです!)ドライバーの多くはUTF-16も適切に処理しますが、私が知る限り、UTF-16は公式にはサポートされていません。
3)これをPythonドライバーでテストしたところ、MongoDBは、壊れたUTF-16コードペアを含む文字列値を正常にロードして返すことができました。ただし、mongoシェルを使用して壊れたコードペアをロードすることも、壊れたコードペアを含む文字列をシェルのJavaScript変数に格納することもできませんでした。
4)mapReduce()は、正しいUTF-16コードペアを使用して文字列データで正しく実行されますが、壊れたコードペアを含む文字列データでmapReduce()を実行しようとするとエラーが発生します。
MongoDBがBSONをJavaScriptエンジンで使用するためにJavaScript変数に変換しようとすると、mapReduce()が失敗しているようです。
5)この問題についてJiraの問題SERVER-6747を提出しました。気軽にフォローして投票してください。