Overview
このガイドでは、BSON データ形式、MongoDB でのデータの使用方法、および Java ドライバーとは別個に BSON ライブラリをインストールする方法について学習できます。
BSON データ形式
BSON(Binary JSON)は、MongoDB がデータを整理して保存するために使用するデータ形式です。このデータ形式には、すべての JSON データ構造タイプが含まれています。また、日付、異なるサイズの整数、ObjectId 値、バイナリ データなどのタイプもサポートしています。サポートされているタイプの完全なリストについては、MongoDB Server マニュアルの BSON types ページを参照してください。
バイナリ形式は人間が判読することはできませんが、Java BSON ライブラリを使用して JSON 表現に変換できます。これらの形式の関係について詳しくは、JSON と BSON 記事を参照してください。
MongoDB と BSON
BSONライブラリを使用するJavaドライバーでは、BSONインターフェースを実装するRealm オブジェクトタイプのいずれかを使用してBSONデータを操作できますBSON interface。次のタイプはBSONインターフェースを実装します。
ドキュメント(BSONライブラリパッケージ)
BsonDocument(BSONライブラリパッケージ)
RawBsonDocument(BSONライブラリパッケージ)
JsonObject(BSONライブラリパッケージ)
BasicDBObject (JVM パッケージ)
BSON ライブラリのインストール
このセクションでは、BSON ライブラリを依存関係としてプロジェクトに追加する方法を示します。Java ドライバーを依存関係としてプロジェクトに追加した場合、BSON ライブラリはドライバーの必須依存関係としてすでに含まれているため、この手順はスキップできます。Java ドライバーを依存関係としてプロジェクトに追加する方法については、「Java ドライバーの使用を開始する」ガイドを参照してください。
Tip
ドキュメントの請求書
ドライバー アーティファクトのバージョンを管理するには、JVM ドライバーの BOM(Bill of Materials)をアプリケーションに追加することをお勧めします。これにより、BOM に含まれる個別パッケージのバージョンを指定する必要がなくなり、依存関係の管理が簡素化されます。詳細については、Javaドライバーを使い始めるガイドを参照してください。
プロジェクトの依存関係を管理するには、Maven または Gradle ビルドオートメーションツールを使用することをお勧めします。そのツールの依存関係宣言を表示するには、次のタブから を選択します。
次のスニペットは、pom.xml ファイルの dependencies セクション内の依存関係宣言を示しています。
<dependencies> <dependency> <groupId>org.mongodb</groupId> <artifactId>bson</artifactId> </dependency> </dependencies>
次のスニペットは、 build.gradleファイル内のdependenciesオブジェクト内の依存関係宣言を示しています。
dependencies { compile 'org.mongodb:bson' }
前述のツールのいずれも使用していない場合は、sonatypeリポジトリから JARファイルを直接ダウンロードすることで、それをプロジェクトに含めることができます。
よくある質問
このセクションでは、 BSONデータ形式を使用する際に発生し得る質問に答えます。
「IllectalArgmentException: Invalid BSON フィールド名」エラーを防ぐにはどうすればよいですか。
誤った形式のドキュメントを操作に渡し、 Javaドライバー v4.7 またはそれ以前のバージョンを使用している場合、アプリケーションでこの例外がスローされることがあります。
注意
ドライバー バージョン 4.8 以降では、このエラーメッセージは に置き換えられ、どのエラーが誤って形式化されたかに関するより具体的な詳細が含まれるようになりました。
たとえば、次のコード例に示すように、更新操作を呼び出し、更新演算子を誤って省略すると、ドライバーはこのエラーをスローします。
// incorrectly formatted update document collection.updateOne( new Document().append("name", "fizz"), new Document().append("name", "buzz") );
このエラーを回避するには、適切な操作にビルダクラスを使用します。このドライバーは、 MongoDB操作用に構文的に正しいBSONを作成するためのビルダ クラスを提供します。上記の例は、次のコード例に示すように、ビルダ クラスを使用して正しく表現できます。
// Builder class imports import static com.mongodb.client.model.Filters.*; import static com.mongodb.client.model.Updates.*; // ... collection.updateOne(eq("name", "fizz"), set("name", "buzz"));
利用可能なビルダ クラスの詳細については、ビルダガイドを参照してください。