MongoDBに関するFAQ

MongoDBとは

MongoDBは、最新のアプリケーション開発者およびクラウド向けに開発された、ドキュメントベースの汎用分散データプラットフォームです。データプラットフォームの中でも最高レベルの生産性を実現します。

MongoDBの特長は何ですか。

MongoDBデータプラットフォームは次の3つの中核的な設計原則に基づいて構築されており、この3つが一体的に作用して迅速かつ高品質な構築を実現しています。

1.ドキュメントデータモデル – データを操作する最適な方法を示します。

  1. 分散システム設計 – データを必要な場所にインテリジェントに配置できます。

  2. どこでも実行できる自由を実現する統合された環境 – 将来の変化に対応可能なアプリケーションを構築し、ベンダーのロックインを回避することができます。

詳細については、MongoDB アーキテクチャガイドを参照してください。

どのような場合にMongoDBを使うべきですか。

MongoDBデータプラットフォームは、さまざまなOLTPや分析アプリで利用できます。

MongoDB ServerとMongoDB Atlas Data Lake(現在はbeta版)を使用すると、幅広いアプリケーション要件に対応できます。

MongoDB Server & Atlas: OLTP &オンライン分析

MongoDB Serverは、ほとんどのOLTPよびオンライン分析ワークロードに役立つように開発された汎用データベースです。

  • 関係データベースの使用を考える場面においては、MongoDBを検討することをおすすめします。

  • NoSQLデータベースの使用を考える場面においては、MongoDBを検討することをおすすめします。

自社の施設内で、アプリをサーバーレス、クラウドネイティブソリューション、またはその中間的なハイブリッド展開モデルとして実行する場合も、MongoDB Serverはインフラストラクチャの完全な俊敏性を実現できます。MongoDBは、独自のインフラストラクチャ上で自分で実行できるほか、AWS、Azure、GCPなどの60を超えるリージョンで利用可能な、完全に自動化された完全管理のグローバルクラウドデータベースサービスであるMongoDB Atlasを使用することもできます

MongoDB Atlas Data Lake(beta版): オフライン分析

MongoDB Serverをさらに強化したMongoDB Atlas Data Lakeでは、MongoDBの機能と生産性をオフライン分析ワークロードにまで拡張できます。Atlas Data Lakeでは、MongoDBの問い合わせ言語とツールを使用して、Amazon S3上のあらゆる形式(他のcloudプロバイダーにも近日対応予定)で迅速かつ簡単にデータを照会できます。

Atlas Data Lakeを使用すると、データレイクの価値をより迅速に実現できます。データを別の場所に移動する必要がなく、複雑なデータをネイティブ形式で即座に処理できます。また、完全管理のサーバーレスアーキテクチャにより、コストをコントロールして運用上の負担を軽減できます。

MongoDBデータプラットフォーム

MongoDB ServerとAtlas Data Lakeを通じて、同じ問い合わせ言語とツールを共有する統合データプラットフォームを利用できます。クラウドネイティブのAtlaサービスによって完全に管理され、幅広い運用アプリケーションや分析アプリケーションに対応できます。

  1. MongoDB Atlas: ミリ秒単位の応答時間を要求するオンラインOLTPアプリケーション用に設計されており、稼働中の運用データに対するリアルタイム分析を実現するために、専用の分析ノードでプロビジョニングされます。

  2. MongoDB Atlas: 最適化されたセカンダリインデックスを備えたオンライン分析により、1秒未満から数秒の応答時間による待ち時間が必要な、予測可能なクエリパターンをサポートします。

  3. MongoDB Atlas Data Lake: クラウドストレージにある大量のデータに対するオフライン分析用に設計されています。待ち時間は最小で数秒程度ですが、通常は数分以上かかります。この時間は照会するデータ量とその分割方法によって決まります。

MongoDBの使用例、および代替テクノロジーを評価する必要があるワークロードについては、MongoDB使用例ガイダンスのホワイトペーパーを参照してください。

MongoDBとOracleのような関係データベースとの違いは何ですか。

Oracle、MySQL、SQL Server、Postgresなどの関係データベースは、もともと40年以上前に設計されたアーキテクチャをベースに構築されています。1970年代のアプリケーションの要件は、今日の最新アプリケーションの要件とは大きく異なっていました。1979年にOracleが初めて商用データベースをリリースしたとき、ストレージ1 MBあたりのコストは約3,000米ドルでした。このようにコストが高額であったため、ソフトウェアアーキテクトは冗長性を排除するためにデータを正規化し、複数の結合テーブルを作成してアプリケーションデータを保存する必要がありました。その結果、今日の関係データベースアプリケーションには、数十個、数百個、場合によっては数千個のテーブルが含まれており、クエリ結果を得るためにはこれらを結合する必要があります。このような複雑さにより、開発者が複雑なSQLクエリを記述する必要があるだけでなく、クエリに多数のテーブルがあることでI/O要求が増加し、インフラストラクチャコストが増大します。

MongoDBは開発者の立場に立ち、データベースよりも生産性の向上を優先することを念頭に開発されました。MongoDBでは、アプリケーション内での使用方法に合わせてデータを保存し、最新の問い合わせ言語でデータを照会することができます。柔軟なスキーマにより、開発者は新しい機能を継続的に統合することができます。

Oracleや他の関係データベースとは異なり、MongoDBは分散システムアーキテクチャ上に構築されているため、複数のインスタンス間でデータベースをスケールアウトすることができます。1つのリージョンで使用することも、複数のリージョンにわたりグローバルに分散することもできます。

OracleとMongoDBの比較

ページで、両データベースの違いを確認してください。

MongoDBについて詳しく知るにはどうすればよいですか。

MongoDBを学ぶ最も簡単な方法は、MongoDB Universityの開発者およびDBA向けのオンライントレーニングコースを受講することです。MongoDB Universityのオンライントレーニングコースは、MongoDB, Inc.のエンジニアによって開発され、指導されています.MongoDB Universityには196か国から100万件を超える申し込みがあり、多くの受講者がMongoDB上でアプリケーションを開発し、展開する方法を学びました。

MongoDB Universityの無料コースは、MongoDBの専門家になるために知っておくべき内容をすべて網羅しています。オンライントレーニングコースは、特に雇用主が重要視する分野で新たなスキルを構築するのに役立つように開発されています。オンライントレーニングコースは実際の導入事例に基づいて作成されています。日常的に開発業務に携わり、13,000社以上の企業を対象に実績を上げてきた当社の社内エンジニアチームが指導します。

MongoDB Universityのトレーニングコースは自習形式であるため、各自の都合がよい時間にビデオやコース資料を復習することができます。さらに、学習事項を構造化するために学習の進捗を確認する週ごとの課題と期日が設定され、知識をテストする最終試験が実施されます。ほとんどのコースは3週間にわたり実施され、週あたりの所要時間は一般的に90分程度です。ぜひ自分に合ったコースを見つけてください。コースカタログを見る

MongoDB認定プロフェッショナルになるにはどうすればよいですか。

MongoDB認定試験

を受験して専門知識を証明することで、MongoDB認定プロフェッショナル開発者またはDBAになることができます。MongoDBの認定資格は、MongoDBアプリケーションの構築と保守に必要な知識を持つ開発者やDBAを評価するものです。

認定試験の準備として、模擬試験を受験し、認定試験の対象分野と形式を把握して自信を深めてください。模擬試験に加えて、学習ガイドもあります。学習ガイドには、開発者試験とDBA試験の両方に関するすべてのトピックが網羅されています。ガイドの各セクションは、関連するドキュメントやその他のオンラインリソースにリンクしています。

MongoDB Serverは無料で使用できます。MongoDB, Inc.はどのような製品を販売していますか。

当社は、MongoDBを構築し、実行する会社です。14,200を超える組織が当社の商用製品に依存しています。当社はユーザーに役立つソフトウェアとサービスを提供しています。

MongoDBデータベース

-MongoDB Atlasは、最新のアプリケーションのためのグローバルクラウドデータベースサービスです。完全管理のMongoDBを、AWS、Azure、Google Cloudにデプロイし、クラス最高の自動化機能と運用実績により、可用性、スケーラビリティ、およびセキュリティ基準へのコンプライアンスを保証します。ドライバー、統合、およびツールで構成されたMongoDBの堅牢なエコシステムを使用して、より迅速に構築し、運用とデータベースの管理に費やす時間を短縮できます。

  • MongoDB Enterprise Advancedは、独自のインフラストラクチャ上でMongoDBを実行するための最適な方法です。高度なソフトウェア、サポート、認定、その他のサービスがきめ細かく調整されたパッケージであり、ビジネスの形態に合わせて設計されます。

  • MongoDB Cloud Managerは、独自のインフラストラクチャ上でMongoDBを管理するのに役立つクラウドベースのツールです。自動プロビジョニング、きめ細かな監視、継続的なバックアップにより、データベースの完全な制御を維持しながら運用オーバーヘッドを削減できる完全管理スイートです。

MongoDBの分析と視覚化

-MongoDB Atlas Data Lakeを使用すると、MongoDBの問い合わせ言語とツールを使用して、Amazon S3上の任意の形式のデータを迅速かつ簡単に照会できます。データをどこかに移動する必要はなく、複雑なデータをネイティブ形式で即座に処理できます。また、完全管理のサーバーレスアーキテクチャにより、コストを管理して運用上の負担を軽減することができます。

  • MongoDB Chartsは、さまざまな用途でMongoDBデータのビジュアライゼーションを作成するのに最適な手段です。ビジュアライゼーションを迅速かつ簡単に構築し、ネストされた複雑なデータを分析できます。個々のチャートを任意のWebアプリケーションに埋め込むか、ライブダッシュボードに組み込んで共有できます。

MongoDB Connector for BIにより、MongoDBをTableau、Microstrategy、Lookerなどの既存のSQLベースのBIプラットフォームや分析プラットフォームのデータソースとして使用できます。

  • MongoDB Connector for Apache Sparkでは、Scala、Java、Python、Rを含むSparkのすべてのライブラリが公開されています。MongoDBデータから、機械学習、グラフ、ストリーミング、およびSQL APIとの分析のためのDataFrameおよびDatasetを作成できます。

モバイルデータベースとサーバーレスアプリケーションプラットフォーム

  • MongoDB Realmデータベース

    は、20億回以上インストールされており、SQLiteやCore Dataに代わる高速で使いやすい機能を提供します。複雑なクエリ、安全なスレッド、即答性に優れたわかりやすいUIを作成するためのリアクティブアーキテクチャ、暗号化、クロスプラットフォームに対するサポートにより、開発者はコードを簡素化し、より多くのデバイスで強力で魅力的なエクスペリエンスを構築できます。

  • MongoDB RealmおよびStitch Platform

    は、より迅速に優れたフルスタックアプリを構築するのに役立ちます。アプリケーションのフロントエンドから直接データやサービスにアクセスするためのルールを簡単に設定でき、アプリケーションロジックを実行するサーバーレス機能を提供します。クライアントとバックエンドのデータレイヤー間でデータを自動的に同期できます。コードリポジトリとの統合により、バージョン管理されたアプリケーションの更新をローカルで開発し、その後テスト環境および本番環境にシームレスにデプロイできます。

MongoDBサービス

  • MongoDB コンサルティングパッケージにより、より迅速な本番環境への移行、本番環境におけるパフォーマンスの調整、および拡張がサポートされるため、開発者は次のリリースに向けた作業に集中できます。

  • MongoDBトレーニングによってMongoDBの専門知識を深めることで、ミッションクリティカルな大規模システムの設計から運用までこなせるようになります。開発者、DBA、アーキテクトを問わず、MongoDBのスキルを向上できます。

詳細については、お問い合わせください

MongoDBの商用ライセンスを取得することはできますか。

はい。MongoDB Enterprise Advancedをご購入いただくと、MongoDBの商用ライセンスを取得できます。

MongoDBデータベースでのデータの保存方法を教えてください。

MongoDBのデータは、JSONスタイルのデータ構造であるBSONドキュメントに保存されています。ドキュメントには1つ以上のフィールドが含まれ、各フィールドには、配列、バイナリデータ、サブドキュメントなど、特定のデータタイプの値が含まれています。似た構造を共有する傾向があるドキュメントは、コレクションとして編成されます。

ドキュメントは関係データベースの行に、フィールドは列に、コレクションはテーブルに似ていると考えるとわかりやすいでしょう。

詳細については、MongoDB アーキテクチャガイドを参照してください。

開発者として、MongoDBドキュメントをどのように扱えばよいですか。

開発者の生産性を向上するために、MongoDBではあらゆる一般的なプログラム言語とフレームワークに対応するネイティブドライバーが用意されています。サポートされているドライバーには、Java、Javascript、C#/.NET、Go、Python、Perl、PHP、Scalaなどがあります。サポートされているすべてのMongoDBドライバーは、指定のプログラミング言語と互換性があります。そのため、開発者はSQLのような文字列ベースの言語よりもはるかに自然にデータを扱うことができ、煩雑で脆弱なORM抽象化レイヤーが不要になります。

MongoDB用GUIであるMongoDB Compassを使用して、MongoDBをグラフィカルに操作することもできます。Compassを使用すると、データを検索して操作し、GUIからクエリやaggregation pipelineを視覚的に作成して、それらをコードとしてアプリにエクスポートし、クエリの実行とパフォーマンスの確認、インデックスの表示と作成、スキーマの検証ルールとビューの構築などを行えます。

MongoDBはACIDトランザクションをサポートしていますか。

はい。2018年のMongoDB 4.0のリリース以降、マルチドキュメントACIDランザクションをご利用いただけるようになりました。

MongoDBはどこで実行できますか。

MongoDBは場所を選ばずに実行できるため、プラットフォームのロックインから完全に開放されます。

MongoDB Atlasによって、AWS、Azure、および Google Cloud上のMongoDBで、包括的な従量課金制の完全管理サービスを利用できます。

MongoDBをダウンロードして場所を選ばず実行することができます。MongoDB Ops Managerは、独自のインフラストラクチャ上でMongoDBを実行するための最適な手段です。運用チームはMongoDBを迅速かつ簡単にデプロイ、監視、バックアップ、拡張できます。Ops Managerの機能は、MongoDB Cloud Managerサービスでも利用できます。

MongoDBには拡張性がありますか。

何万もの組織がMongoDBを使用して高性能なシステムを大規模に構築しています。Fortune 100企業から最も俊敏なスタートアップ企業まで、多くの組織がMongoDBに依存しています。これらの企業は単一サーバー展開を拡張して1,000ノードを超えるクラスターを導入し、1,000億件を超えるドキュメントと数ペタバイトのデータに対して、毎秒数百万件の処理を実行しています。ぜひ詳細をご覧ください

シャーディング

を利用すると、MongoDBデータベースを複数のノード間で自動的に拡張して、書き込み中心のワークロードとデータサイズの拡大に対処できます。MongoDBでシャーディングを行うことで、アプリケーションが単一サーバーのハードウェア制限を超えて拡大した場合にデータベースをシームレスに拡張でき、しかもこれをアプリケーションの複雑性を増すことなく実現できます。ワークロード需要の変化に対応するために、ドキュメントをシャード間で移動でき、さらにクラスターにノードをリアルタイムで追加または削除することができます。MongoDBでは、必要に応じて自動的にデータが再調整されるため、手動で操作する必要はありません。

MongoDBでは、どのように高可用性が確保されますか。

MongoDBでは、サーバー、ラック、データセンターに分散されたデータの複数のコピーであるレプリカセットが自動的に維持されます。レプリカセットは、ネイティブレプリケーションと自動フェイルオーバーを使用して、データベースのダウンタイムを防ぐのに役立ちます。

レプリカセットは、複数のレプリカセットメンバーで構成されます。常に1つのメンバーがプライマリーメンバーとして機能し、他のメンバーはセカンダリメンバーとして機能します。プライマリーメンバーに何らかの理由(ハードウェア障害など)で障害が発生した場合、セカンダリメンバーの1つが自動的にプライマリーとして選択され、すべての読み取りと書き込みの処理を開始します。

詳細については、MongoDB アーキテクチャガイドを参照してください。

MongoDBでは、どのように整合性が確保されますか。

MongoDBはデフォルトで整合性が確保されています。読み取りと書き込みがレプリカセットのプライマリーメンバーに発行されます。アプリケーションは、必要に応じてセカンダリレプリカから読み取ることができます。ここではデフォルトでデータの結果整合性が確保されます。セカンダリからの読み取りは、一部のレポートアプリケーションなど、データがわずかに古くても許容されるシナリオで役立ちます。また、整合性よりも待ち時間の方が重要な場合は、データから最も近い(ping距離で測定される)コピーから読み取ることもできます。

詳細については、MongoDB アーキテクチャガイドを参照してください。

MongoDBはスキーマレスですか。

いいえ。MongoDBにおいて、スキーマ設計は依然として重要です。ただし、MongoDBのドキュメントモデルでは、従来の関係データベースとは異なるスキーマパラダイムが採用されています。 MongoDBでは、ドキュメントは自己記述型です。スキーマが宣言され、維持される総合カタログはありません。スキーマはドキュメントによって異なる場合があり、既存のデータを更新する必要もなく、急速に進化する場合があります。

さらに、ドキュメントの全フィールドが同一である必要がない場合、半構造化された多様なデータをMongoDBの動的スキーマによって簡単に表現することができます。例えば、金融取引ポジションのコレクションには、株式ポジション、債券、現金などが含まれる場合があります。すべてに共通するフィールドもあり得ますが、一部のフィールド(“ticker“ や “numberofshares“ など)がすべてのポジションタイプに適用されるわけではありません。

スキーマ検証

では、データに対してスキーマを適用し、必須フィールド、許容値、および適切なデータタイプの存在を確認することができます。 MongoDBでスキーマを設計するときは、アプリケーションで実行する必要があるクエリの種類、アプリケーションコードでオブジェクトを管理する方法、およびドキュメントが変化して時間の経過とともに成長する可能性など、さまざまなトピックを考慮する必要があります。

スキーマ設計の詳細については、以下を参照してください。

データをMongoDBに保存する前に正規化する必要はありますか。

いいえ。MongoDBを使用する際、スキーマ設計は非常に重要ですが、これは関係データベースのスキーマ設計とは大きく異なります。

スキーマ設計の詳細については、以下を参照してください。

MongoDBではどのようにデータが保護されますか。

MongoDBは、データへのアクセスを防御、検出、制御するための広範な機能を備えています。

-認証。MongoDBではデータベースへのアクセス制御を簡素化するために、SCRAM-256に基づく強力なチャレンジ-レスポンスメカニズムを備えているだけでなく、LDAP、Windows Active Directory、Kerberos、および x.509の各証明書を含むエンタープライズセキュリティインフラストラクチャも統合しています。 - 権限。ロールベースのアクセスコントロール(RBAC)により、ジョブを実行するのに必要な権限に基づいて、ユーザーやアプリケーションのアクセス許可をきめ細かく設定できます。 - 監査。セキュリティ管理者はコンプライアンスを目的として、MongoDBのネイティブ監査ログを使用し、すべてのデータベースアクティビティと変更を記録できます。 -すべての場所で暗号化。MongoDBのデータは、ネットワークでの移動時、データベースでの使用時、ディスク上またはバックアップでの保存時に暗号化することができます。

MongoDBのセキュリティコントロールの詳細については、ドキュメントを参照してください。クラウドのセキュリティの詳細については、MongoDBセキュリティセンターにアクセスしてください。

MongoDB 4.4リリースの新機能は何ですか。

詳細については、新機能ガイドをご覧ください。

MongoDB RealmとMongoDB Stitchの関係を教えてください。

MongoDB Realmとは、一般的なモバイルデータベースおよびデータ同期技術であるRealmと、MongoDBのサーバーレスプラットフォームであるMongoDB Stitchを組み合わせ、強力で魅力的なエクスペリエンスをより多くのデバイスで簡単に構築できるようにした統合ソリューションです。詳細については、こちらをご覧ください。

MongoDBの名前の由来は何ですか。

MongoDBという名前は、「humongous(巨大)」という言葉が基になっています。当社の創設者は、DoubleClickのような大規模なインターネット企業を設立してきました。その中で常にデータベースに関する同じ問題に直面し、最大の問題の1つがスケーラビリティでした。スケーラビリティの高いデータベースを目指してMongoDBの開発が開始され、「humongous database(巨大なデータベース)」からMongoDBと名づけられました。

MongoDBのロゴの木の葉にはどのような意味がありますか。

当社の創業者は、コーディングは自然でなければならず、データベースの使用も同様に自然であるべきと考えています。MongoDBの使用環境をシンプルで自然なものにするという願いを込めて、木の葉をデザインしたロゴを使用しています。