MongoDBとは専門家によるガイド

Jeffrey Erickson氏|シニア・ライター| 2024年10月30日

MongoDBは、2007年に、アド・サービス・ビジネスにおける多数の小規模トランザクション(その名前)を追跡したいという開発者が作成しました。最初は10genと呼ばれていた新しいデータベースは、JSONタイプのファイルの単純なドキュメント「バケット」にデータを保持し、非常に迅速にスケール・アップできました。データ・モデルや正確なトランザクションの同時実行性は、単に広告インプレッションを数えるだけであり、その価値は低かったため、あまり必要ありませんでした。

ただし、MongoDBは、開発者が飢えていたようなデータベースのシンプルさを提供しました。2009年にオープンソース開発モデルで発売され、2018年にSSPL(Server Side Public License)に移行され、多くのオープンソース開発スタックで事実上の標準データストアになるように進化し、Expedia、Lyft、eBayなどを含む顧客リストを備えています。それがどういうものか見てみましょう。

MongoDBとは

MongoDBは、一般的なオープン・ソース・ドキュメント・データベースで、最新のWebおよびモバイル・アプリケーションで広く使用されています。NoSQLデータベースとして分類されます。つまり、従来の表ベースのリレーショナル・メソッドではなく、柔軟なドキュメント指向のアプローチでデータを格納します。MongoDBの魅力の大部分は、そのシンプルさと「開発者目線の設計」にあります。たとえば、Mongo相互作用は、作成、読取り、更新、削除の頭字語CRUDによって定義されます。

MongoDBは、JSONドキュメントにデータを保存し、様々な種類のアプリケーションに対して、構造化データ、非構造化データ、半構造化データなど、格納されたデータを比較的簡単に使用できます。MongoDBの柔軟なデータ・モデルにより、開発者は非構造化データを格納しながら、データ保護と可用性を実現するためのファイル・アクセスとレプリケーションの高速化をサポートできます。つまり、開発者はMongoDBを使用して高度なアプリケーションを設計および構築できます。

MongoDBは、何千もの広告サービス・サイトにわたってインプレッションを追跡するために開発されましたが、オープン・ソースのWeb開発における柔軟なデータ・ストアとしてすぐに広く普及しました。2007年の発売以来、継続的に進化し、アドホック・クエリ、インデックス作成、リアルタイム集計を含む堅牢な機能セットを蓄積しています。開発者にとってMongoDBの主な利点は、最も一般的なリレーショナル・データベースと比較して、直感的に使用でき、すぐに開始できることです。MongoDBに格納されているJSONドキュメントの型は、一般的なプログラミング言語(JavaScriptやPython辞書など)で見つかった使い慣れたデータ型にマップされます。Mongoは、PHP、.Net、Java、Python、Node.jsなど、ほとんどのプログラミング言語のドライバ・サポートを備えたクライアント・ライブラリの徹底的なメニューも提供しています。

とはいえ、すべての技術と同様に、MongoDB にも得意分野と不得意分野があります。オンライン広告を追跡するように設計されており、高速同時アクセスが必要でしたが、トランザクション精度が低下し、リアルタイム分析がほとんど行われませんでした。現在でも、MongoDBは、可用性、スケーラビリティおよび最終的な一貫性を表すBASEの原則に基づいて形成されています。そのため、MongoDBは通常、高可用性およびスケーラビリティが主な設計上の考慮事項であるシナリオで使用されます。対照的に、財務業務やミッションクリティカルなエンタープライズ環境などのジョブでは、開発者は通常、リレーショナル・データベースを選択します。これにより、データベース操作の信頼性と一貫性を確保するために、ACIDトランザクション(原子性、一貫性、分離および耐久性)が提供されます。しかし、最近では、テクノロジー業界は、JSONの開発のシンプルさとSQLのメリットを通じて、開発者に両者の長所を提供できるソリューションを提供しています。

MongoDBの仕組みに関する図と説明を次に示します。
MongoDBの動作

データはアプリケーションからMongoDBデータベースにどのように送られますか。

  • 様々なプログラミング言語のクライアント・アプリケーションは、MongoDBデータベースと対話します。
    1. ドライバは、アプリケーションがMongoDBと通信できるようにする言語固有のライブラリです。
    2. MongoDBデータベース・サーバーは、データが格納および管理される場所です。単一クラスタ、レプリカ・クラスタまたはシャード・クラスタである可能性があります。
    3. データファイルは、MongoDBデータベース内の実際のドキュメントを保持します。
    4. チャンク・ストレージ・システムは、ファイルが固定サイズのセクションに分割され、格納される場所です。
    この図は、アプリケーションとMongoDBデータベース間の基本的なデータ・フローを示しています。

    MongoDB環境

    MongoDBには、小規模、中規模、さらには大規模なエンタープライズ・プロジェクトに取り組む開発者のニーズに合せて、様々な構成およびサービス・レベルが用意されています。

    • MongoDB Atlasは、クラウド・プロバイダ間でデータベースをデプロイおよび管理するための、MongoDBのサービスとしてのデータベース・オファリングです。Atlasは、スケーリングやバックアップなど、多くの管理タスクを自動化します。
    • MongoDB Communityは、NoSQLソリューションを探している中小規模プロジェクトに適したデータベースのオープン・ソース・バージョンです。オープンソースであるため、修正とイノベーションに適しており、開発者に支援を見つけるための堅牢なコミュニティを提供します。しかし、コミュニティ・バージョンには公式なサポートとサービスレベル契約(SLA)がなく、セキュリティ・オプションが少なく、管理ツールが限られています。
    • MongoDB Enterprise Advancedは、市販されているプレミアム・バージョンのMongoDBコミュニティです。強化されたセキュリティ・オプションと、エンタープライズ・グレードのユースケースをサポートするインメモリー・ストレージ・エンジンを提供します。

    主なポイント

    • MongoDBは、構造化データ、半構造化データおよび非構造化データの格納に使用される一般的なNoSQLデータベースです。
    • MongoDBは、従来のリレーショナル・データベースと同様に、表を使用するかわりに、コレクションに編成されたJSONドキュメントにデータを格納します。
    • MongoDBは厳密なスキーマを必要としないため、アプリケーション機能の変更に合わせて進化できる柔軟なデータ・モデルを使用できます。
    • MongoDBは、もともと、トランザクションの一貫性や迅速なデータ分析をほとんど考慮せずに、広告サービス・ビジネスでの高速ストレージとリコール用に設計されました。シャーディング機能などの後の開発は、MongoDBの機能を拡張します。
    • MongoDBは従来のリレーショナル・データベースとは異なる強みを提供するため、開発者は両方のアプローチを最大限に活用する方法を模索することがよくあります。

    MongoDB説明

    MongoDBは、ドキュメント指向のデータ・モデルを使用するNoSQLデータベースです。各レコードは、MySQLなど、一般的なリレーショナル・データベースに共通する行や列ではなく、コレクションに格納されているドキュメントです。

    MongoDBは、BSONまたはバイナリJSONという形式を使用してJSONドキュメントを格納します。これらのドキュメントの非リレーショナル特性は、構造化アプリケーション・データだけでなく、半構造化データおよび非構造化データを格納し、データベースで処理できることを意味します。リレーショナル・データベースとは異なり、MongoDBは厳密なスキーマを使用しません。かわりに、ドキュメントには柔軟性があり、配列およびネストされたドキュメントを含めることができ、複雑で階層的なデータ・ストレージが可能になります。

    非常に大規模なデータ・セットを処理する場合、MongoDBなどのデータベースをドキュメント化するには、シャーディングと呼ばれる手法を使用して、複数のノードまたはクラスタ間でデータをスケール・アウトまたは分散します。このモデルにより、高速なストレージとリコールが可能になります。このアーキテクチャは、MongoDBが広告配信用に作成されたもので、何百万もの広告をいつでも何千ものWebサイトで呼び出す必要がある可能性があることを前提としています。1つの広告を別の広告に対して分析する必要はなかったため、データを物理的に分散して分離することができました。

    階層ドキュメント・データベースは読取り操作では非常に高速ですが、システムはすべてのネストされたエンティティのデータを分析する必要があるため、データ分析が遅くなる可能性があります。対照的に、リレーショナル・データベースはデータを個別の表に格納し、データベース内の多くの表で単一のオブジェクトを参照できるため、大規模な分析操作をより効率的に実行できます。これらの異なる強みを考慮して、開発チームは通常、アプリケーションの現在のニーズに最適なデータ管理システムを選択します。または、リレーショナル・ドキュメント・データとJSONドキュメント・データの両方およびその他の多くのデータ型への完全なSQLアクセスを提供するマルチモーダル・データベースを選択することもできます。

    ACIDとベース

    選択する内容は、アプリケーションのニーズによって異なります。

    ACID(原子性、一貫性、分離、耐久性) BASE(基本的に使用可能、ソフト状態、最終的には一貫性がある)

    原子性:トランザクション全体が1つの単位として扱われるようにします。すべての変更が成功するか、いずれの変更も成功しません。これにより、データが一貫性のない状態のままになる可能性のある部分的な更新が防止されます。

    一貫性:トランザクション後に、データベースがある有効な状態から別の有効な状態に遷移することを保証します。ビジネス・ルールとデータの整合性を強制します。

    分離:同時トランザクションが相互に干渉しないことを確認します。複数のトランザクションが同時に発生する場合でも、各トランザクションは単独で実行されます。

    耐久性:トランザクションがコミットされると、変更は永続ストレージに書き込まれ、クラッシュなどのシステム障害の影響を受けません。

    基本的に利用可能:データの可用性を最大化することに重点を置いています。システムは、部分的な障害でも動作し続けるように努め、ほとんどの読取りおよび書込み操作を続行できます。

    ソフト状態:データの一貫性は、書込み操作の直後に保証されません。変更がすべてのレプリカに反映される前にわずかな遅延が発生し、一時的な不整合が発生する可能性があります。

    最終的に一貫性:時間の経過とともに、レプリカ間で変更を同期するバックグラウンド・プロセスによって一貫性が実現されます。

    長所:

    高いデータの整合性と強力な一貫性により、ACIDは財務取引などの正確性を要求するアプリケーションに最適です。

    長所:

    高可用性と拡張性により、BASEは、特に分散システムにおいて、高い稼働時間と応答性を必要とするアプリケーションに最適です。一貫性要件が緩和されると、書込み速度が速くなり、スケーラビリティが向上します。

    短所:

    パフォーマンス・オーバーヘッドは、ACIDの保証を維持すると、書込み速度が低下する可能性があることを意味します。スケーラビリティの高い環境では、厳密な一貫性要件の管理が困難になる可能性があります。

    短所:

    データ同期中に一時的な不整合が発生する可能性があるため、厳密なデータ整合性と即時の一貫性が重要なアプリケーションにはBASEが適していません。

    MongoDBの仕組み

    MongoDBは、リレーショナル・データベースの表に類似したコレクションにデータを格納します。各コレクションには、構造によって異なる複数のドキュメントが保持されます。ドキュメントは自己記述的であるため、ドキュメント構造をシステムに宣言する必要はありません。つまり、各ドキュメントにはドキュメント内の各フィールドを記述するメタデータが含まれます。

    パフォーマンスを向上させるために、MongoDBはドキュメント内の任意のフィールドに対する索引付けをサポートします。索引は、問合せの効率的な実行をサポートし、プライマリ索引とセカンダリ索引を含めることができます。MongoDBのクエリ言語は、CRUD (作成、読取り、更新、削除)操作をサポートし、複雑な集計、テキスト検索および地理空間クエリを可能にします。応答時間を短縮するために、MongoDBには、開発者がサーバー側で複雑なデータ処理を設定できる集計フレームワークが用意されています。つまり、SparkHadoopのように、データが存在するクラスタで分析を実行でき、データを別のプラットフォームに移動する必要がありません。これにより、クライアントとの間で転送されるデータの量を削減できます。

    MongoDBは、レプリカ・データ・セットをサポートすることで、高可用性を提供し、パフォーマンスを向上させるために機能します。レプリカは、すべてのインスタンスに読取りおよび書込み操作を分散することで、ロード・バランシングに使用できます。また、これらのレプリカ・セットにより、冗長性が確保され、異なるデータベース・サーバー上の複数のデータ・コピーを介してデータ可用性が向上します。ハードウェア障害またはメンテナンスの場合、レプリカ・セットを使用すると、MongoDBで自動フェイルオーバーおよびデータ冗長性を実現できます。

    スケーラビリティのために、MongoDBはシャーディングによる水平スケーリングをサポートしています。これは、複数のマシン上の複数のデータベースにデータを分散する方法です。シャード・クラスタは、多数のレプリカ・セットで構成できます。シャーディングは、シャード・キーを定義して構成され、シャード間でデータを分散する方法を決定します。この手法は、データ・セットを分割して複数のサーバーにロードすることで、大規模なデータ・セットおよび高スループット操作を管理するのに役立ちます。


    シャーディングの仕組み

    各シャードは、シャード・データベースのデータのサブセットをホストする独立したデータベース・インスタンスです。

    シャーディングの仕組み図
    この図は、クライアント・アプリケーションの上部から下部にあるデータベース・シャードへの単方向フローを示しています。

    MongoDBとRDBMSの比較

    各タイプのデータベース(MySQL、Postgres、Oracle Databaseなど)またはドキュメント指向(CouchDB、DynamoDB、MongoDBなど)には長所と短所があり、それらの間の選択は、通常、開発中のアプリケーションの特定の要件と制約によって異なります。

    リレーショナル・データベース管理システム(RDBMS)は構造化問合せ言語(SQL)を使用しますが、MongoDBのドキュメントに重点を置いた形式はドキュメント・ストアAPIを使用します。それでも、MongoDB問合せ言語(MQL)は、ドキュメントの作成、読取り、更新、削除などの操作でJavaScriptに似た言語を使用します。

    MongoDBには表および行の概念がなく、スキーマがないため、データベースを使用する前に定義する構造が少なくなります。ただし、中央スキーマがない場合、コレクションにアクセスする各アプリケーションは、ドキュメントを理解する必要があります。したがって、スキーマはアプリケーション・コード内にあり、データベースで定義されていません。あるアプリがスキーマを変更すると、他のアプリが壊れる可能性があります。スキーマが基本的にRDBMSおよびデータ編成のブループリントであり、相互関係が明示的に定義されるリレーショナル・データベースと比較して、MongoDBにはデータ間の関係という固有の概念がありません。

    MongoDBではキー値ストア、グラフ、ドキュメントなどのデータに異なる形式が使用され、データ構造は時間の経過とともに変化する可能性があるため、データ・ストアの柔軟性は注目に値します。これは、データの整合性を確保するために、厳密な定義、階層および検証プロシージャを使用するRDBMSとは異なります。

    基本的なMongoDBインスタンスの設定は簡単ですが、シャーディングおよびレプリカを含む大規模な分散MongoDBクラスタの構成および保守は複雑になる可能性があり、そのアーキテクチャおよび構成オプションについて十分に理解する必要があります。


    主な違い

    リレーショナル MongoDB
    データ・モデル 固定行および固定列を含む表を使用し、データは事前定義されたスキーマで構造化されます。 動的スキーマを持つJSONのような構造であるドキュメントのコレクションを使用します。
    スキーマの柔軟性 データを追加する前に設定する必要がある事前定義済スキーマが必要です。 動的スキーマがあります。コレクション内の他のすべてのドキュメントに影響を与えずに、新しいフィールドをドキュメントに追加できます。
    クエリ言語 複雑なクエリに対して非常に強力なSQLを使用して、データを定義および操作します。 SQLよりも直感的ですが、完全性が低く、汎用性が高いドキュメントベースの問合せ言語を使用します。
    スケーリング 従来は垂直方向にスケーリングするため、既存のマシンにさらに電力を供給していましたが、シャーディングやOracle Real Application Clustersなどの成熟した機能は水平方向のスケーリングをサポートしています。 シャーディングを使用して複数のマシン間で水平方向にスケーリングするように設計されており、これにより、マシン・クラスタ全体にデータが分散されます。
    トランザクション 複数行トランザクションをサポートし、ACIDに準拠しているため、データの損失や破損が発生しないアプリケーションに適しています。 マルチドキュメント・トランザクションをサポートしますが、ほとんどの従来のリレーショナル・データベース(特に分散データ)よりも堅牢性が低いことが知られています。
    パフォーマンス トランザクションの正確性を確保するために構築されていますが、大量のデータに対してはパフォーマンスが低下する可能性があります。ただし、分析パフォーマンスは一般的に優れています。 大量のデータにわたる高い読取りパフォーマンスのために構築されています。

    MongoDBを使用する理由

    MongoDBは、ブログやノート作成アプリなどの単純なCRUDアプリケーションから、Amazon Primeなどの複雑なプラットフォームまで、幅広い用途に適しています。MongoDBは、コンテンツ管理システム(CMSes)や、データ同期が高速である必要があるゲーム・アプリケーション、バイオメトリック・ヘルスケア・データなど、多くのユースケースで選択されることがよくあります。その汎用性により、MEANMERNなどの一般的なオープン・ソース開発スタックの基礎となっています。

    必要なときに選択:

    • 柔軟性。MongoDBのJSONドキュメント形式は、SQLクエリを介して複雑な結合を必要とする階層データ構造を表すシンプルで直感的な方法を提供します。
    • 可用性。MongoDBの分散データベース機能は、大規模な変更されていないデータセットであっても、高可用性を提供します。
    • スケーラビリティ。MongoDBは、大規模で急速に変化する多様なデータ・セットを収集、処理および分析するように設計されています。
    • パフォーマンス。レプリケーション、シャーディングなどの方法によるパフォーマンスの最適化により、MongoDBはメディアやエンターテイメントなどの領域の大規模なアプリケーションに対して実行可能な選択肢となります。
    • 互換性。MongoDBのJSONタイプのドキュメントは、一般的なプログラミング言語で見られる使い慣れたデータ型と簡単に互換性があります。また、MongoDBクライアント・ライブラリは、PHP、.Net、JavaScriptなど、ほとんどのプログラミング言語のドライバを提供します。
    • コミュニティのサポートMongoDBは、多くのオープン・ソース開発スタックにおける事実上の標準データ・ストアで、コミュニティのサポートが豊富です。

    MongoDBの機能

    MongoDBは、直感的なAPI、柔軟なデータ・モデル、次のような機能により、開発者に人気を博しています。

    • アドホック クエリ。MongoDBでは、ドキュメント全体、ドキュメントの特定のフィールドまたは結果のランダムなサンプルを返すことができるフィールド、範囲および正規表現の問合せがサポートされます。
    • 索引付け。MongoDBでは、単一フィールド、複合(複数フィールド)、複数キー(配列)、地理空間、テキスト、ハッシュなど、様々な索引タイプがサポートされています。
    • レプリケーション。MongoDBは、データの2つ以上のコピーを含むレプリカ・セットで高可用性を提供します。書込みはプライマリ・レプリカによって処理され、どのレプリカも読取りリクエストを処理できます。プライマリ・レプリカに障害が発生すると、セカンダリ・レプリカが昇格され、プライマリ・レプリカになります。
    • スケーラビリティ。クラスタはデータの一部のみをコレクションに格納するため、MongoDBデータベースのスケーリングはシャーディングで拡張されます。シャーディング・キーによって、そのデータの分散が決まります。
    • ロード・バランサ。MongoDBは垂直方向および水平方向にスケーリングでき、シャード・クラスタのおかげで、ロード・バランサはデータベースの基本構造で処理できます。レプリケーションを使用すると、プライマリ・サーバーの負荷を軽減できます。
    • ファイル・ストレージ。データは、ほとんどのプログラミング言語のオブジェクトに簡単にマップできるドキュメントに格納されるため、アプリケーション内で簡単にアクセスできます。
    • バッチ処理。データ処理にはいくつかの方法があります。ドキュメント自体で行う場合もあれば、ネットワーク操作を減らすバルク書込みメソッドで行う場合もあります。

    MongoDBの利点

    オープンソースコミュニティとのMongoDBの人気は、アプリケーション開発とメンテナンスをより直感的かつスケーラブルにする多くの方法に起因しています。次の利点があります。

    • 開発者にとっての使いやすさ。開発者はMongoDBを選択することがよくあります。これは、クラウド上でダウンロードやアクセスが簡単であるためです。つまり、データ・モデルを作成して表を操作するのではなく、ドキュメントを操作する方が簡単であるためです。
    • 効率性。JSONは、小規模なドキュメント・ファイルと人間が読めるコンテンツで、多くの効率性を提供します。MongoDBは、ドキュメントをバイナリ形式(BSON)でエンコードします。これは、プレーン・テキストと比較してよりコンパクトで高速に解析できます。
    • 柔軟なスキーマ。MongoDBのドキュメント・データ・モデルにより、柔軟で自己記述的なスキーマが可能になり、フィールドをドキュメントごとに変えることができます。
    • 単純なクエリ言語。MongoDBクエリ言語(MQL)は、開発者にとって使いやすいように設計されており、複雑なクエリおよび索引で一般的に使用される問合せを高速化できます。
    • クラウドネイティブ。MongoDB Atlasはクラウド・ネイティブ・データベースであるため、頻繁に更新され、新しいテクノロジに迅速に適応します。また、その使用により、アプリケーションをクラウドに移行しやすくなります。

    MongoDBデメリット

    MongoDBには多くの利点がありますが、特に大容量のデータ・ボリュームの中で柔軟性と高パフォーマンスを必要とするアプリケーションには、多くの潜在的な欠点があります。

    • トランザクションのサポート。MongoDBトランザクション・サポートは、従来のリレーショナル・データベースほど成熟していないか、堅牢ではありません。複雑なトランザクション(特に複数の操作にまたがるトランザクション)も、実行できず、MongoDBでの実装が困難な場合があります。
    • データの整合性。MongoDBのレプリカ・セットに対する「最終的な一貫性」の使用は、すべてのユーザーが同じデータを同時に読み取ることができない状況につながる可能性があります。強力な一貫性を要求するアプリケーションの場合、これは重大な欠点になる可能性があります。
    • 結合操作。MongoDBでは、SQLデータベースの結合はサポートされていません。ただし、同じような機能を実行するオプションもありますが、通常は効率が低く、より複雑なクエリーやパフォーマンスの低下につながる可能性があります。特に、ドキュメント間の複雑な関係を処理する場合です。
    • メモリ使用。MongoDBは、最も頻繁に使用されるデータおよび索引をRAMに格納するため、そのパフォーマンスは十分なRAMがあることに大きく依存します。その結果、MongoDBデータベースは、他のデータベースよりも多くのメモリー・リソースと、場合によっては多くのハードウェアを消費できます。
    • ストレージのオーバーヘッド。MongoDBで使用される自己完結型のドキュメント・パラダイムは、リレーショナル・データベースの高度に正規化された表と比較して、ストレージ要件が大きくなる可能性があります。また、MongoDBの動的スキーマにより、データの冗長性と断片化が発生し、ストレージの使用とコストが増加する可能性があります。
    • 索引付けの制限事項。MongoDBは多くの索引付けオプションをサポートしていますが、多数の索引を保持すると、書込みパフォーマンスが低下する可能性があります。各書込み操作で複数の索引を更新する必要がある場合があるため、頻繁な書込み用に構築されるわけではありません。多くの場合、書込みパフォーマンスに対して問合せパフォーマンスが低下します。
    • コスト。高可用性および水平スケーリングが必要なシナリオでは、特にクラウド環境でのMongoDBクラスタの実行および保守に関連するコストが大きくなる可能性があります。多くのRAMとストレージが必要になると、コストも増加します。これは、レプリカ・データベースで同じ数のリソースが必要な高可用性の状況で特に当てはまります。

    MongoDBの互換性

    MongoDBは、そのエコシステム内で適切に機能するNoSQLデータベースですが、様々なデータ統合ツールおよびコネクタを介して他のタイプのデータベース管理システムと対話するように構築されています。このツールセットには、MongoDBからデータを抽出および移行するためのETL (抽出、変換、ロード)インフラストラクチャが含まれており、その逆も同様です。これは、レポートや複雑なデータ分析のためにリレーショナル・データベースにデータを送信する場合に便利です。MongoDBアプリケーションは、REST APIを使用して異なるデータベース・プラットフォーム間で通信することもできます。

    Oracle Autonomous DatabaseでのMongoDBワークロードの実行

    MongoDB互換性のよい例として、開発者がOracle Autonomous JSON Databaseに接続されたMongoDBのオープン・ソース・ツールおよびドライバを使用できるOracle Database API for MongoDBがあります。これにより、オラクルのマルチモデル機能にアクセスでき、分析、機械学習(ML)および空間分析のためにデータを別のデータベースに移動することを回避できます。Autonomous JSON Databaseは、MongoDB Atlasのマルチモーダルの代替手段と考えてください。多くの場合、既存のアプリケーションに変更はほとんどまたはまったく必要ありません。

    Oracle Autonomous JSON DatabaseへのMongoDBワークロードの移行

    開発者は、APIを介してMongoDB機能にアクセスするかわりに、Oracle Cloud Infrastructure (OCI)上のOracle Autonomous JSON DatabaseJSON中心のワークロードを移行できます。これにより、NoSQLスタイルのドキュメントAPI (Simple Oracle Document AccessまたはSODA、およびOracle Database API for MongoDB)、サーバーレス・スケーリング、高パフォーマンスのACIDトランザクション、包括的なセキュリティ、および低従量課金制の価格機能を備えたJSON中心のアプリケーション用のクラウド・ドキュメント・データベース・サービスが提供されます。MongoDBからOracle Autonomous JSON Databaseへの移行はOracle Cloud Infrastructure (OCI) GoldenGateで実現されるため、ダウンタイムはありません。

    Autonomous Databaseを使い始める

    MongoDBユーザーは、JSON中心のアプリケーションをより汎用的に構築できるようになりました。Oracle Autonomous Databaseは、開発者が単一のデータベース内でSQL、JSONドキュメント、グラフ、地理空間、テキスト、ベクトルを使用して新しい機能を迅速に構築できるようにすることで、すべてのニーズを満たすことができる単一のデータ・プラットフォームを使用して、ビジネス需要に柔軟に対応できるようにします。

    また、Oracle Databaseの革新的な新機能であるJSONリレーショナル二面性により、どちらのモデルもトレードオフすることなく、リレーショナル表とJSONドキュメントの両方のメリットが得られます。

    Autonomous Databaseは、統合的なAIサービスとデータベース内の機械学習(ML)を利用して、テキストや画像の分析、音声認識、パーソナライズされた推奨でアプリケーションを強化します。さらに、Autonomous Database Select AIは自動的に自然言語をデータベース・クエリに変換し、複雑なインターフェイスのを介したカスタム・コーディングや手動操作を行うことなく、コンテキストに応じて対話を行うことができます。また、データベースは完全に自律型であるため、開発チームは、自動化されたセキュリティ対策と継続的な監視を通じて、稼働時間を確保し、データを保護することで、アプリケーションの構築に集中できます。

    今すぐ無料で開始したり、ワークショップを試してSQL、JSON、Oracle Graphを同じアプリケーションで使用する方法を学ぶこともできます。

    eコマース・プラットフォーム、IoTアプリケーションなどのユースケースでは、MongoDBはさまざまな業界でその汎用性を実証しています。多様なデータタイプを処理し、複雑なクエリをサポートするその能力により、現代のテクノロジースタックにおける有能なコンポーネントとしての地位を確立しています。企業がデータから最大の価値を引き出そうとする中、MongoDB はその成功に欠かせない役割を果たすでしょう。

    開発者とそのビジネス同僚も同様に、俊敏性、スケーラビリティおよび効率を最大化するために特別に設計されたクラウドネイティブ・アプリケーションの恩恵を受けることができます。クラウドが改善する10の追加の方法について、詳細をご確認ください。

    MongoDB FAQ

    SQLとMongoDBの違いは何ですか。

    MongoDBは、構造化問合せ言語(SQL)に適さない非構造化データを保存します。

    MongoDBはバックエンド言語ですか。

    いいえ。ただし、バックエンドWebアプリケーションの一部として使用できます。

    MongoDBは言語またはフレームワークですか。

    これは、表ではなくドキュメントに格納されている非構造化データを使用するデータベース管理システムです。