最初の MongoDB 実験

MongoDBBeginner
オンラインで実践に進む

はじめに

LabEx へようこそ!これはあなたの最初の MongoDB の実験(Lab)です。データベースを使ったことがなくても心配いりません。私たちはあらゆるステップであなたをガイドします。

まず、MongoDB とは何かを理解しましょう。MongoDB は、データを柔軟なドキュメント形式で保存するデータベースシステムです。従来の表計算ソフトとは異なり、MongoDB では、コンピューターのフォルダーにファイルを整理するような、より自然な方法でデータを整理できます。

この実験(Lab)では、以下のことを学びます。

  1. MongoDB シェルを起動し、それが何であるかを理解する
  2. 最初のデータベースとコレクションを作成する
  3. MongoDB にデータを追加し、表示する
  4. データをカウントし、削除する

これらのスキルは、あなたの MongoDB の旅の基礎となります。さあ、始めましょう!

実験(Lab)を開始するには、下の続行ボタンをクリックしてください。

MongoDB シェルを起動する

MongoDB を開始する前に、まず LabEx VM でターミナルを開く必要があります。これには 2 つの方法があります。

  1. ターミナルインターフェース: 速度と使いやすさから、ターミナルインターフェースをお勧めします。これは MongoDB 関連の実験(Lab)のデフォルトインターフェースです。

    ターミナルインターフェースでターミナルを開く
  2. デスクトップインターフェース: より伝統的なターミナル体験を好む場合は、デスクトップインターフェースを使用できます。デスクトップの左側を見て、Xfce Terminalとラベル付けされたアイコンをクリックしてください。

    デスクトップインターフェースでターミナルを開く

どちらの方法でも同じように機能します。単に同じ実験(Lab)環境にアクセスするための異なる方法です。お好みの方法を選択してください!

次に、データベースのコントロールパネルのようなものである MongoDB シェルを起動しましょう。シェルは MongoDB と直接対話する方法だと考えてください。コマンドを入力すると、MongoDB が応答します。

MongoDB シェルを起動するには、ターミナルに次のコマンドを入力して Enter キーを押します。

mongosh

接続メッセージが表示され、ローカルの MongoDB インスタンスに正常に接続されたことを示します。出力は次のようになります。

Current Mongosh Log ID: 65a7f3e5f1a1234567890abc
Connecting to:          mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+x.y.z
Using MongoDB:          X.X.X
Using Mongosh:          X.X.X

For mongosh info, see: https://docs.mongodb.com/mongodb-shell/

test>

test> プロンプトは、mongoshシェル内に入り、デフォルトのtestデータベースに接続されていることを示しています。

サーバー上のすべての既存データベースを一覧表示しましょう。mongoshシェルに次のコマンドを入力します。

show dbs

MongoDB が内部目的で使用するデフォルトデータベースのリストが表示されます。

admin     40.00 KiB
config   112.00 KiB
local     40.00 KiB

次のステップでは、独自のデータベースを作成します。

データベースの作成とドキュメントの挿入

MongoDB では、データベースを明示的に作成する必要はありません。最初のデータ保存時に自動的に作成されます。新しいデータベースに切り替えるには、useコマンドを使用します。

mylab_databaseという名前のデータベースに切り替えましょう。mongoshシェルで次のように入力します。

use mylab_database

シェルはswitched to db mylab_databaseと応答します。データベースはまだ作成されていませんが、これでそのコンテキストで作業しています。

MongoDB のデータはコレクションに保存され、コレクションはドキュメントのグループです。ドキュメントはキーと値のペアのセットです。最初のドキュメントを挿入してusersコレクションを作成しましょう。

insertOne()メソッドを使用して、usersコレクションに 1 つのドキュメントを追加します。

db.users.insertOne({ name: "JohnDoe", age: 30, city: "NewYork" })

このコマンドの内訳を見てみましょう。

  • db: 現在のデータベース(mylab_database)を表します。
  • users: コレクションの名前です。自動的に作成されます。
  • insertOne(): 1 つのドキュメントを挿入するためのメソッドです。
  • {...}: nameagecityなどのフィールドを含むドキュメント自体です。

MongoDB は挿入を確認し、ドキュメントに自動生成された一意の_idを返します。

{
  acknowledged: true,
  insertedId: ObjectId("...")
}

ObjectIdは、すべてのドキュメントに自動的に割り当てられる一意の識別子です。

次に、ドキュメントが追加されたことを確認しましょう。find()メソッドを使用して、usersコレクション内のすべてのドキュメントを表示します。

db.users.find()

出力には、挿入したばかりのドキュメントが表示されます。

[
  {
    _id: ObjectId("..."),
    name: 'JohnDoe',
    age: 30,
    city: 'NewYork'
  }
]

複数ドキュメントの挿入

多くの場合、一度に複数のドキュメントを追加する必要があります。insertMany()メソッドはこれに最適です。引数としてドキュメントの配列を受け取ります。

新しいbooksコレクションを作成し、単一のコマンドで 3 冊の本を追加しましょう。

db.books.insertMany([
    { title: "MongoDBBasics", author: "JaneSmith", year: 2023 },
    { title: "PythonProgramming", author: "JohnDoe", year: 2022 },
    { title: "DataScienceHandbook", author: "AliceJohnson", year: 2021 }
])

配列を定義する角括弧 [ ] に注意してください。配列内の各オブジェクト {...} は個別のドキュメントです。

MongoDB は操作を確認し、挿入されたすべてのドキュメントの_id値を返します。

{
  acknowledged: true,
  insertedIds: {
    '0': ObjectId("..."),
    '1': ObjectId("..."),
    '2': ObjectId("...")
  }
}

新しく作成したbooksコレクション内のすべてのドキュメントを表示するには、再度find()メソッドを使用します。

db.books.find()

出力には、追加した 3 冊の本のドキュメントすべてがリストされます。

ドキュメントのクエリとカウント

データが準備できたので、データの取得とカウントの方法を学びましょう。

コレクション内のドキュメントの総数をカウントするには、countDocuments()メソッドを使用します。booksコレクション内の本の数をカウントしてみましょう。

db.books.countDocuments()

コマンドは合計数を返します。

3

特定のドキュメントを検索するには、find()メソッドにクエリフィルターを渡します。クエリフィルターは、検索条件を指定するドキュメントです。

例えば、「JohnDoe」によって書かれたすべての本を見つけるには、次のクエリを使用します。

db.books.find({ author: "JohnDoe" })

フィルター { author: "JohnDoe" } は、authorフィールドの値が "JohnDoe" であるドキュメントのみを返すように MongoDB に指示します。

数値に基づいてクエリすることもできます。2023 年に出版されたすべての本を見つけましょう。

db.books.find({ year: 2023 })

これにより、「MongoDBBasics」の本が返されます。find()メソッドは、必要なデータを正確に取得するための強力なツールです。

ドキュメントの削除

最後に、コレクションからドキュメントを削除する方法を学びましょう。

特定の条件に一致する単一のドキュメントを削除するには、deleteOne()メソッドを使用します。「MongoDBBasics」というタイトルの本を削除してみましょう。

db.books.deleteOne({ title: "MongoDBBasics" })

シェルは、1 つのドキュメントが削除されたことを確認します。

{ acknowledged: true, deletedCount: 1 }

条件に一致する複数のドキュメントを削除するには、deleteMany()を使用します。このメソッドは、クエリ演算子をサポートしており、より複雑な条件を作成できます。例えば、$ltは「より小さい」を表します。

2022 年より前に出版されたすべての本を削除しましょう。

db.books.deleteMany({ year: { $lt: 2022 } })

このコマンドは、yearフィールドが 2022 より小さいすべてのドキュメントを削除します。この場合、「DataScienceHandbook」が削除されます。

どの本が残っているかを確認するには、最後にfind()コマンドを実行します。

db.books.find()

コレクションには「PythonProgramming」の本のみが残っているはずです。

これで、MongoDB の基本的な CRUD(Create, Read, Update, Delete)操作を練習しました。mongoshシェルを終了するには、次のように入力します。

exit

まとめ

最初の MongoDB の実験を完了おめでとうございます!MongoDB データベースでのデータ管理のコア操作を学習し、実践することができました。

この実験では、以下の方法を学びました。

  • mongoshシェルを起動して MongoDB サーバーと対話する方法。
  • useコマンドを使用してデータベースに切り替える方法。
  • insertOne()およびinsertMany()を使用して単一および複数のドキュメントを挿入する方法。
  • クエリフィルターの有無にかかわらずfind()を使用してドキュメントを取得する方法。
  • countDocuments()を使用してコレクション内のドキュメントをカウントする方法。
  • deleteOne()およびdeleteMany()を使用してドキュメントを削除する方法。

これらの基本的なスキルは、MongoDB で強力なアプリケーションを開発するためのビルディングブロックとなります。実践が鍵ですので、学んだコマンドをさらに自由に試してみてください。