

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon DocumentDB Java プログラミングガイド
<a name="docdb-java-pg"></a>

この包括的なガイドでは、MongoDB の Java ドライバーを使用して Amazon DocumentDB を操作するための詳細なウォークスルーを提供し、データベースの運用と管理の重要な側面について説明します。

**Topics**
+ [序章](#java-pg-intro)
+ [前提条件](#java-pg-prereqs)
+ [データモデル](#java-pg-data-models)
+ [Java ドライバーとの接続](java-pg-connect-mongo-driver.md)
+ [Java を使用した CRUD オペレーション](java-crud-operations.md)
+ [Java によるインデックス管理](index-management-java.md)
+ [イベント駆動型プログラミング](event-driven-programming.md)

## 序章
<a name="java-pg-intro"></a>

このガイドは接続から始まり、MongoDB Java ドライバーを使用して DocumentDB クラスターへの安全な接続を確立する方法について説明します。接続文字列コンポーネント、SSL/TLS 実装、IAM 認証や接続プーリングなどのさまざまな接続オプション、堅牢なエラー処理戦略について詳しく説明します。

CRUD (作成、読み取り、更新、削除) オペレーションセクションでは、このガイドでドキュメントの操作について詳しく説明し、単一オペレーションと一括オペレーションの両方を使用してドキュメントの作成、読み取り、更新、削除を行う方法を示します。ここでは、フィルター、クエリ、およびさまざまなオペレーションオプションの使用について説明し、エラー処理のベストプラクティスと信頼性を向上させるための再試行ロジックの実装に焦点を当てています。このガイドでは、単一フィールドインデックス、複合インデックス、スパースインデックス、テキストインデックスなど、さまざまなインデックスタイプの作成とメンテナンスについて詳しく説明しています。適切なインデックス選択と、クエリ実行プランを分析するための `explain()` 関数の使用を通じてクエリパフォーマンスを最適化する方法について説明します。

最後のセクションでは、Amazon DocumentDB の変更ストリームを使用したイベント駆動型プログラミングに焦点を当て、Java アプリケーションでリアルタイムのデータ変更モニタリングを実装する方法を示します。変更ストリームカーソルの実装、継続的オペレーションの再開トークンの処理、履歴データ処理の時間ベースのオペレーションについて説明します。ガイド全体で、実用的なコード例とベストプラクティスが提供されるため、Amazon DocumentDB で堅牢な Java アプリケーションを構築する際の貴重なリソースとなります。

## 前提条件
<a name="java-pg-prereqs"></a>

作業を開始する前に、次の項目があることを確認します。
+ DocumentDB クラスターが設定された AWS アカウント。DocumentDB クラスターのセットアップについては、この [入門ブログ記事](https://aws.amazon.com/blogs/database/part-1-getting-started-with-amazon-documentdb-using-amazon-ec2/) を参照してください。
+ Java Development Kit (JDK) がインストールされている (このガイドでは [Amazon Corretto 21](https://docs.aws.amazon.com/corretto/latest/corretto-21-ug/downloads-list.html) を使用します)。
+ 依存関係管理のための Maven。

## このガイドのデータモデル
<a name="java-pg-data-models"></a>

このガイドのすべてのサンプルコードは、「Restaurants」コレクションを持つ「ProgGuideData」テストデータベースへの接続を前提としています。このガイドのすべてのサンプルコードは、レストラン出品システムで動作します。以下は、このシステムのドキュメントの例です。

```
{
    "_id": "ab6ad8f119b5bca3efa2c7ae",
    "restaurantId": "REST-CRT9BL",
    "name": "Thai Curry Palace",
    "description": "Amazing Restaurant, must visit",
    "cuisine": "Thai",
    "address": {
        "street": "914 Park Street",
        "city": "Bryan",
        "state": "AL",
        "zipCode": "96865",
        "location": {
            "type": "Point",
            "coordinates": [-25.4619, 8.389]
        }
    },
    "contact": {
        "phone": "(669) 915-9056 x6657"
    },
    "rating": {
        "average": 3.4,
        "totalReviews": 275
    },
    "priceRange": "$",
    "menu": [{
        "category": "Appetizers",
        "items": [{
            "name": "Buffalo Chicken Wings",
            "price": 13.42
        }]
    }],
    "features": [
        "Private Dining"
    ],
    "isActive": false“ michelin”: {“
        star”: 3,
        “ranking_years”: 4
    }
}
```

CRUD、インデックス管理、イベント駆動型プログラミングを示すすべてのコードサンプルは、[https://mongodb.github.io/mongo-java-driver/5.3/apidocs/mongodb-driver-sync/com/mongodb/client/MongoClient.html](https://mongodb.github.io/mongo-java-driver/5.3/apidocs/mongodb-driver-sync/com/mongodb/client/MongoClient.html) オブジェクト `dbClient`、[https://mongodb.github.io/mongo-java-driver/5.3/apidocs/mongodb-driver-sync/com/mongodb/client/MongoDatabase.html](https://mongodb.github.io/mongo-java-driver/5.3/apidocs/mongodb-driver-sync/com/mongodb/client/MongoDatabase.html) オブジェクト `connectionDB`、および [https://mongodb.github.io/mongo-java-driver/5.3/apidocs/mongodb-driver-sync/com/mongodb/client/MongoCollection.html#find()](https://mongodb.github.io/mongo-java-driver/5.3/apidocs/mongodb-driver-sync/com/mongodb/client/MongoCollection.html#find()) オブジェクト `collection` があることを前提としています。

**注記**  
このガイドのすべてのコード例は、MongoDB Java ドライバーバージョン 5.3.0 でテストされています。