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

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

MongoDBは2007年、広告配信ビジネスにおける膨大な(だからこの名前になった)数の小規模トランザクションを追跡することを希望した数人の開発者によって作られました。当初10genと名付けられた新しいデータベースは、JSON型ファイルのシンプルなドキュメント「バケット」にデータを保持し、非常に迅速にスケールアップすることができました。単純に広告のインプレッションをカウントするだけなので、データモデルや厳密なトランザクション・コンカレンシーは必要ありませんでした。

しかし、MongoDBは開発者が渇望していたデータベースのシンプルさを提供することがわかりました。2009年にオープンソース開発モデルで立ち上げられ、2018年にSSPL(サーバーサイドパブリックライセンス)に移行し、Expedia、Lyft、eBayなどを含む多くの顧客を持つ、多くのオープンソース開発スタックの事実上の標準データストアへと進化しました。それがどういうものか見てみましょう。

MongoDBとは

MongoDBは、最新のWebおよびモバイル・アプリケーションで一般的に使用されるオープンソースのドキュメント・データベースです。MongoDBはNoSQLデータベースに分類され、つまり従来の表ベースのリレーショナル・データベースではなく、柔軟なドキュメント指向のアプローチでデータを保存します。MongoDBの魅力の大部分は、そのシンプルさと「開発者目線の設計」にあります。たとえば、Mongoのやりとりは、create、read、update、deleteの頭文字をとってCRUDと呼ばれます。

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

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

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

MongoDBのの仕組みに関する図と説明
MongoDBの仕組み

アプリケーションからMongoDBデータベースにデータが移行する仕組み

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

    MongoDBの環境

    MongoDBは、小規模、中規模、さらには大規模なエンタープライズ・プロジェクトに取り組む開発者のニーズに合うように、さまざまな構成とサービス・レベルで提供されています。

    • MongoDB Atlas はMongoDBが提供する、クラウドプロバイダー間でデータベースを展開および管理するためのDatabase-as-a-Serviceです。Atlasはスケーリングやバックアップなど多くの管理タスクを自動化します。
    • MongoDB Communityは、NoSQLソリューションを求める中小規模のプロジェクトに合わせたデータベースのオープンソース版です。オープンソースであるため、修正と革新に適しており、開発者に支援を得るための強固なコミュニティを提供します。しかし、コミュニティ・バージョンには公式サポートとサービスレベル契約(SLA)がなく、セキュリティオプションも少なくなり、管理ツールも限られています。
    • MongoDB Enterprise Advancedは商用利用可能なMongoDB Communityのプレミアム・バージョンです。セキュリティ・オプションの強化とインメモリ・ストレージ・エンジンを提供し、エンタープライズクラスのユースケースをサポートします。

    主なポイント

    • MongoDBは、構造化、半構造化、非構造化データを格納するために使用される一般的なNoSQLデータベースです。
    • MongoDBは、従来のリレーショナル・データベースのようにテーブルを使う代わりに、コレクションに編成されたJSONドキュメントにデータを格納します。
    • MongoDBは硬直したスキーマを必要としないため、アプリケーション機能の変化に合わせて進化できる柔軟なデータ・モデルを実現します。
    • MongoDBは当初、トランザクションの一貫性や迅速なデータ分析をほとんど考慮しない、広告配信ビジネスにおける高速なストレージとリコールのために設計されました。シャーディング機能など、その後の開発がMongoDBの機能を拡張しています。
    • MongoDBは従来のリレーショナル・データベースとは異なる強みを提供するため、開発者はしばしば両方のアプローチの長所を得る方法を模索します。

    MongoDBの説明

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

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

    MongoDBのようなドキュメント・データベースは、非常に大きなデータセットを扱う場合、シャーディングと呼ばれる手法を使って複数のノードやクラスタにデータをスケールアウトまたは分散します。このモデルによって、高速なストレージとリコールが可能になります。このアーキテクチャは、MongoDBが何百万もの広告を何千ものウェブサイトから瞬時に呼び出す必要がある広告配信のために作られたことを考えると理にかなっています。ある広告を別の広告と照らし合わせて分析する本質的な必要性がないため、データを物理的に分散および分離することができました。

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

    ACIDとBASE表の比較

    どちらを選ぶかは、アプリケーションのニーズにより決まります。

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

    原子性:トランザクション全体が1つの単位として扱われることを保証します。すべての変更が成功するか、あるいはどれも成功しないかのどちらかです。これにより、部分的な更新によってデータが一貫性のない状態になることを防ぎます。

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

    分離性:同時に実行されるトランザクションが互いに干渉しないようにします。複数のトランザクションが同時に発生しても、各トランザクションは分離して実行されているように見えます。

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

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

    ソフト状態:データの整合性は、書き込み操作の直後に保証されるわけではありません。変更がすべてのレプリカに反映されるまでに若干のタイムラグがあり、一時的な不整合が発生する可能性があります。

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

    長所:

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

    長所:

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

    短所:

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

    短所:

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

    MongoDBの仕組み

    MongoDB には表と行の概念がなく、スキーマもないので、データベースが使えるようになる前に定義する構造が少なくて済みます。各コレクションは複数のドキュメントを保持し、その構造はさまざまです。ドキュメントは自己記述型なので、ドキュメントの構造をシステムに宣言する必要はありません。つまり、各ドキュメントにはドキュメント内の各フィールドを記述したメタデータが含まれています。

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

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

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


    シャーディングの仕組み

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

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

    MongoDBとRDBMSの比較

    MySQL、Postgres、Oracle Databaseのようなリレーショナル・データベースと、CouchDB、DynamoDB、MongoDBのようなドキュメント指向のデータベースには、それぞれ長所と短所があり、一般的に、これらの選択は、開発するアプリケーションの特定の要件と制約によって決まります。

    リレーショナル・データベース管理システム(RDBMS)は構造化クエリ言語(SQL)を使用しますが、MongoDBのドキュメントに特化したフォーマットはドキュメントストアAPIを使用します。それでも、MongoDB Query Language(MQL)はJavaScriptのような言語を使い、ドキュメントの作成、読み込み、更新、削除などの操作を行います。

    MongoDBには表と行の概念がなく、スキーマもないため、データベースが使えるようになる前に定義する構造が少なくて済みます。しかし、中央のスキーマがないため、コレクションにアクセスするアプリケーションはそれぞれドキュメントを理解する必要があります。つまり、「スキーマ」はアプリケーション・コードの中にあり、データベースで定義されているわけではありません。あるアプリケーションがスキーマを変更すると、他のアプリケーションが壊れる可能性があります。スキーマが基本的にRDBMSの設計図であり、データの構成や相互関係が明示的に定義されているリレーショナル・データベースに比べて、MongoDBにはデータ間の関係という固有の概念がありません。

    データストアの柔軟性は顕著で、MongoDBはキー/値ストア、グラフ、ドキュメントなど、データにさまざまな形式を使用し、データ構造は時間の経過とともに変更することができます。これは、厳しい定義、階層、データの整合性の保証を支援するための検証手順を使用するRDBMSとは異なります。

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


    主な違い

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

    MongoDBが使用される理由

    MongoDBは、ブログやメモ帳アプリのようなシンプルなCRUDアプリケーションから、Amazon Primeのような複雑なプラットフォームまで、さまざまな用途に適しています。MongoDBは、コンテンツ管理システム(CMS)、データの同期が高速に行われる必要があるゲーム・アプリケーション、生体認証ヘルスケア・データなど、多くのユースケースでよく選ばれています。その汎用性により、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の互換性の良い例として、開発者がMongoDBのオープンソースツールとドライバーをOracle Autonomous JSON Databaseに接続して使えるようにする、Oracle Database API for MongoDBがあります。これにより、オラクルのマルチモデル機能にアクセスでき、分析、機械学習(ML)および空間分析のためにデータを別のデータベースに移動することを回避できます。Autonomous JSON Databaseは、MongoDB Atlasに代わるマルチモーダルなデータベースだとお考えください。多くの場合、既存のアプリケーションの変更はほとんどまたはまったく必要ありません。

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

    開発者は、APIを介してMongoDB機能にアクセスする代わりに、JSON中心のワークロードを Oracle Cloud Infrastructure (OCI)上の Oracle Autonomous JSON Databaseに移行するだけです。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とMySQLの違いを教えてください。

    MongoDBは非構造化データを保存するので、構造化クエリ言語(SQL)には適していません。

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

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

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

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