初心者向け MongoDB チュートリアル: 簡単な手順で MongoDB を学ぶ
公開: 2022-08-31MongoDB はドキュメント データベースであり、オープンソースの主要な NoSQL データベースです。 C++ で書かれており、大量のデータ ストレージ、コンテンツの管理と配信、モバイルおよびソーシャル インフラストラクチャ、ユーザー データ管理などに使用されるドキュメント指向の NoSQL データベースです。
これは、階層関係を表現できるデータ モデルで構成されています。 オプションのスキーマを持つ JSON に似たドキュメントに依存し、従来のリレーショナル データベースで使用されていた行とテーブルを使用しません。 キーと値のペアを持つドキュメントは、MongoDB のデータの基本単位です。
MongoDB はデータを JSON 形式で保存します。 その高い需要は主に、あらゆる属性のインデックス、レプリケーションと高可用性、自動シャーディング、豊富なクエリ、迅速なインプレース アップデート、充実したコミュニティ サポートに基づいています。 mongodb クエリ チュートリアルに飛び込みましょう。
MongoDB の機能
このデータ指向データベースの使いやすさは、Mongo DB の特定の統合機能に依存します。
- 各データベースは、ドキュメントをさらに含むコレクションで構成されています。 これらのドキュメントとそのサイズおよび内容は、フィールドの数によって異なる場合があります。
- ドキュメントの構造は、開発者がプログラム内でクラスとオブジェクトを構築する方法に基づいています。
- 外出先でフィールドを作成できるため、行には定義済みのスキーマは必要ありません。
- MongoDB データ モデルを使用すると、配列やその他の複雑な構造を格納するための階層関係を表すことができます。
- MongoDB 環境は非常にスケーラブルです。
- アプリケーション オブジェクトをデータベース オブジェクトに変換またはマップする必要はありません。
- 内部メモリには、データへのアクセスを容易にするウィンドウ化されたワーキング セットが保存されます。
- 単一のオブジェクトの構造は明らかです。
- 複雑な結合はありません。
- 高度なクエリ機能により、ドキュメントに対する動的クエリがサポートされます。
また、データ サイエンス コースをチェックして、スキルアップを図ってください。
MongoDB と RDBMS について知っておくべきこと
MongoDB は、高いパフォーマンス、効果的なスケーラビリティ、および高可用性を実現する、ドキュメント指向のクロスプラットフォーム データベースです。 ドキュメントとコレクションに基づいて機能します。 MongoDB のすべてのデータベースには個別のファイル セットがあり、理想的には、単一の MongoDB サーバーに多数のデータベースがあります。
一方、コレクションは、RDBMS テーブルに相当する MongoDB ドキュメントのグループです。 単一のデータベース内に存在し、スキーマを強制しません。 コレクション内のドキュメントはさまざまなフィールドを持つことができ、コレクション内のすべてのドキュメントは関連または類似の目的を持っています。 キーと値のペアのセットは、動的スキーマを持つドキュメントと呼ばれます。同じコレクション内のドキュメントは、同じ構造またはフィールドのセットを持っている必要はありません。
次の表に、RDBMS 用語と MongoDB との関係を示します。
RDBMS | モンゴDB |
データベース | データベース |
タプル | 書類 |
テーブル | コレクション |
テーブル結合 | 埋め込まれたドキュメント |
桁 | 分野 |
主キー | 主キー (MongoDB はデフォルトのキー _id を提供します) |
データベース サーバーとクライアント | |
mysqld/オラクル | モンゴッド |
mysql/sqlplus | モンゴ |
MongoDB と SQL データベースの違い
MongoDB は SQL よりも柔軟で、より優れたデータ可用性を提供します。 また、ポータブルで拡張可能です。 SQL データベースは、耐久性と一貫性で知られています。 したがって、最適なデータベース ソリューションは、関与するプロジェクトの種類によって異なります。
MongoDB は開発パイプラインに適していますが、SQL データベースは信頼性の高い組織データ トランザクションに適しています。 MongoDB は、非構造化データの処理と操作に最適です。 この NoSQL データベースは、データ パイプラインへのフィードや、リアルタイム分析などのアプリケーションに最適な代替手段の 1 つです。
MongoDB は、IoT デバイスやモバイル/Web アプリケーションの操作に最適です。 その柔軟性とスムーズなスケールアップ能力により、世界中の開発者に好まれる選択肢になりつつあります。
SQL データベースは、構造化データ、データ サイエンス、高度な組織タスクの操作に最適ですが、MongoDB は、ソフトウェアやオンライン サービスの効果的な開発を通じて、現代の開発者や企業の要件を満たします。
MongoDB の使用方法の例
ネストされたデータ構造の格納
ドキュメント内でオブジェクトをネストする機能は、MongoDB の最大の機能の 1 つです。 ドキュメント内にデータを埋め込むために、開発者はデータをさまざまなコレクションに分割するのではなく、MongoDB で構造化します。
ここに例があります: -
{_id: ObjectId(“5effaa5662679b5af2c58829”),
メール: “[email protected]”,
名前: {与えられた: “リリー”, 家族: “モナ”},
年齢: 31,
住所:[{ラベル:「自宅」、
通り: “22 1b ベーカー ストリート”,
都市: 「ロンドン」,
状態:「ENG」、
zip:「NW1 6XE」、
国: 「英国」},
{ラベル: 「ママ」,
通り:「555パークストリート」、
市:「レイクタウン」、
州:「オンタリオ」、
国: 「カナダ」}]
}
名前フィールドは、複数のアドレスが 1 つの配列に格納されているアドレス フィールドに、名と姓のコンポーネントを持つネストされたオブジェクトです。 各アドレスにはさまざまなフィールドを含めることができるため、他のデータ型を簡単に格納できます。
MongoDB シェルの使用
MongoDB シェルは、主にドキュメント データのナビゲート、操作、および検査に使用されます。 MongoDB がローカル マシンで実行されている場合、シェルを起動すると、標準ポートの localhost で MongoDB に接続されます。 MongoDB Atlas クラスターまたは他のリモート インスタンスに接続する必要がある場合は、コマンド mongo の後に接続文字列を追加してください。
以下に簡単なシェルの例を示します:-
コレクションのリスト
> my_database を使用します。
> コレクションを表示します。
ユーザー
投稿
>
データベースの一覧表示
> データベースを表示します。
管理者0.000GB
構成 0.000GB
ローカル0.000GB
my_database 0.004GB
>
人気のデータ サイエンス コースを探す
IIITBのデータサイエンスのエグゼクティブポスト大学院プログラム | ビジネス上の意思決定のためのデータ サイエンスのプロフェッショナル認定プログラム | アリゾナ大学でデータ サイエンスの理学修士号を取得 |
IIITB のデータ サイエンスの高度な証明書プログラム | メリーランド大学のデータ サイエンスとビジネス分析のプロフェッショナル認定プログラム | データサイエンスコース |
コレクション内の最初のドキュメントを見つける
> db.users.findOne()
{
“_id”: ObjectId(“5ce45d7606444f199acfba1e”),
「名前」: {与えられた: 「アンナ」、家族: 「スミス」},
「メール」:「[email protected]」
「年齢」:36
}
>
コレクション内のドキュメントを数える
> my_database を使用します。
> db.users.count()
20234
>
ID でドキュメントを検索する
> db.users.findOne({_id: ObjectId(“5ce45d7606444f199acfba1e”)})
{
“_id”: ObjectId(“5ce45d7606444f199acfba1e”),
「名前」: {与えられた: 「アンナ」、家族: 「スミス」},
「メール」:「[email protected]」、
「年齢」:36
}
>
MongoDB コレクションのクエリ
高度なクエリで使用できるドキュメントでは、MongoDB クエリ言語 (MQL) と同じ構文が使用されます。 以下に MongoDB クエリの例を示します。
限られた数の結果を見つける
> db.users.find().limit(10)
…
>
姓でユーザーを検索
> db.users.find({“name.family”:“Smith”}).count()
1
>
「name.family」は、途中にドットがあるため、引用符で囲んでいることに注意してください。
数値範囲によるドキュメントのクエリ
// 数値が 1 より大きい「いいね」フィールドを持つすべての投稿:
> db.post.find({いいね: {$gt: 1}})
// すべての投稿のいいね数が 0
> db.post.find({いいね: 0})
// ちょうど 1 つのいいね! を持たないすべての投稿
> db.post.find({いいね: {$ne: 1}})
結果をフィールドで並べ替える
// 年齢の昇順 (最小値が最初)
> db.user.find().sort({年齢: 1})
{
“_id”: ObjectId(“5ce45d7606444f199acfba1e”),
「名前」: {指定: 「アレックス」、家族: 「スミス」},
「メール」:「[email protected]」、
「年齢」:27
}
{
_id: ObjectId(“5effaa5662679b5af2c58829”),
メール: “[email protected]”,
名前: {与えられた: “ジェシー”, 家族: “シャオ”},
年齢: 31
}
>
// 年齢順、降順 (最大値が最初)
> db.user.find().sort({年齢: -1})
{
_id: ObjectId(“5effaa5662679b5af2c58829”),
メール: “[email protected]”,
名前: {与えられた: “リリー”, 家族: “モナ”},
年齢: 31
}
{
“_id”: ObjectId(“5ce45d7606444f199acfba1e”),
「名前」: {与えられた: 「アンナ」、家族: 「スミス」},
「メール」:「[email protected]」、
「年齢」:36
}
>
2022 年に学ぶべきトップ データ サイエンス スキル
SL。 いいえ | 2022 年に学ぶべきトップ データ サイエンス スキル | |
1 | データ分析コース | 推論統計コース |
2 | 仮説検定プログラム | ロジスティック回帰コース |
3 | 線形回帰コース | 解析のための線形代数 |
結論
MongoDB のスケーラビリティは、ソフトウェア開発とデータ サイエンスの分野で多くの利点を提供するため、最も広く使用されているデータベースの 1 つになっています。 これらの分野でのキャリアを追求することは、有利な選択肢です。 upGrad のデータ サイエンスのエグゼクティブ PG プログラムは、データ サイエンスやその他の関連分野でキャリアをスタートさせるのに最適な場所です。
なぜ MongoDB は簡単に拡張できるのですか?
MongoDB 内のデータはリレーショナルに結合されていないため、MongoDB は SQL データベースではないため、スケーリングが容易です。 MongoDB のデータは自己完結型の形式で保存され、これらのドキュメントを複数のシステム (ノード) に分散することで簡単に水平方向のスケーリングが可能になります。
MongoDB と、MariaDB や MySQL などのデータベース システムの違いは何ですか?
MongoDB は NoSQL データベースですが、MariaDB と MySQL は SQL データベースです。 また、MongoDB は非リレーショナル データベースですが、他の 2 つはリレーショナル データベースです。
MongoDB が人気の理由
MongoDB は、Web 開発における MERN スタックの重要な部分です。 また、MongoDB でのプロジェクトの展開とスケーリングも簡単です。 MongoDB はそのスケーラビリティで知られています。 これは、あらゆる開発パイプラインに最適です。