Docs Menu
Docs Home
/
データベース マニュアル
/ /

ピリオドとドル記号を含むフィールド名

MongoDB、ドル記号( $)またはピリオド(.)を含むフィールド名が許可されます。ただし、 MongoDBこれらのフィールドを含む一部の機能をサポートしていないため、フィールド名内でこれらの文字を使用することは推奨されません。

ほとんどの場合、このようなフィールド名を使用して保存されたデータには直接アクセスできません。 これらのフィールドにアクセスするクエリでは、 $getField$setField$literalなどのヘルパー メソッドを使用する必要があります。

フィールド名の検証ルールは、すべてのタイプのストレージ操作で同じではありません。

ドル記号($)のプレフィックスがついたフィールド名や、ピリオド(.)を含むフィールド名の使用には一般的な制限があります。これらのフィールドには、次のことはできません。

  • インデックスを付ける

  • シャードキーの一部に使用する

  • を使用して検証される $jsonSchema

  • エスケープ シーケンスで変更する

  • フィールドレベル暗号化と併用する

  • _id ドキュメントのサブフィールドに使用する

警告

ドル記号($)とピリオド(.)によるデータ損失の可能性

ドル記号($)で始まるフィールド名や、ピリオド(.)を含むフィールド名を使用し、MongoDB 5.0 以前のサーバーで未確認の書き込み(書き込み確認(write concern)w=0)と組み合わせて使用すると、頻度は低いもののデータが失われる可能性があります。

insertupdate、およびfindAndModifyコマンドを実行すると、5.0 互換のドライバーは、ドル記号($)で始まるフィールド名またはピリオド( .)を含むフィールド名を持つドキュメントの使用に対する制限を解除します。これらのフィールド名は、以前のドライバー バージョンではクライアント側のエラーを引き起こしていました。

ドライバーが接続されているサーバー バージョンに関係なく、制限は解除されます。5.0 ドライバーが古いサーバーにドキュメントを送信すると、エラーを送信することなくドキュメントは拒否されます。

警告

ドル記号($)とピリオド(.)に関するインポートとエクスポートの問題

MongoDB 5.0 以降、ドキュメントフィールド名に接頭辞としてドル記号($)を付けたり、ピリオド(.)を含めたりすることができます。ただし、フィールド名にこれらの記号が使用されている場合、状況によっては mongoimportmongoexport が通常どおりに動作しないことがあります。

MongoDB Extended JSON v2では、型ラッパーと、型ラッパーと同じ名前を持つフィールドを区別できません。対応する BSON 表現にドル( $)で始まるキーが含まれる可能性があるコンテキストでは、拡張 JSON 形式を使用しないでください。DBRef メカニズムは、この一般ルールの例外です。

フィールド名にピリオド(.)が含まれる状態での mongoimportmongoexport の使用にも制限があります。CSV ファイルではデータ階層を表すのにピリオド(.)が使用されるため、フィールド名のピリオド(.)はネストのレベルと誤解されます。

ピリオドとドル記号を含むフィールド名を処理する方法の例については、次のページを参照してください。

戻る

分散されたクエリ

項目一覧