sql >> データベース >  >> NoSQL >> MongoDB

MongoDBは、基本多言語面の外側にあるコードポイントを使用してUTF-8の文字列を保存および操作できますか?

    ここにはいくつかの問題があります:

    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を提出しました。気軽にフォローして投票してください。




    1. スキーマが無効です。`mongodb`または`mongodb+srv`が必要です

    2. フォーム送信後、NodeJSから同じhtmlページにデータを送り返します

    3. 手動リファレンスのサポート

    4. MongoRepository@Query文字列を日付として解析できませんでした