MongoDB の基本型を使用する

MongoDBMongoDBBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、MongoDB でさまざまなデータ型(数値、文字列、ブール値、日付、オブジェクト ID など)を扱う方法を学びます。この実験では、MongoDB データベースにさまざまな型のデータを格納、照会、操作する際の実践的な例を扱います。各データ型に対する一般的な操作を行い、適切な使用例を理解するための実験的な経験を得ます。

この実験は、数値の扱い、文字列データの処理、ブール値の使用、日付と時刻の格納、オブジェクト ID の管理の 5 つの主要なステップに分かれています。各ステップでは、詳細な手順を示し、関連する MongoDB コマンドを示し、それぞれのデータ型の固有の特性と応用例を紹介します。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL mongodb(("MongoDB")) -.-> mongodb/BasicOperationsGroup(["Basic Operations"]) mongodb(("MongoDB")) -.-> mongodb/QueryOperationsGroup(["Query Operations"]) mongodb(("MongoDB")) -.-> mongodb/DataTypesGroup(["Data Types"]) mongodb/BasicOperationsGroup -.-> mongodb/insert_document("Insert Document") mongodb/BasicOperationsGroup -.-> mongodb/update_document("Update Document") mongodb/QueryOperationsGroup -.-> mongodb/find_documents("Find Documents") mongodb/QueryOperationsGroup -.-> mongodb/query_with_conditions("Query with Conditions") mongodb/DataTypesGroup -.-> mongodb/use_numeric_data_types("Use Numeric Data Types") mongodb/DataTypesGroup -.-> mongodb/use_string_data_types("Use String Data Types") subgraph Lab Skills mongodb/insert_document -.-> lab-422097{{"MongoDB の基本型を使用する"}} mongodb/update_document -.-> lab-422097{{"MongoDB の基本型を使用する"}} mongodb/find_documents -.-> lab-422097{{"MongoDB の基本型を使用する"}} mongodb/query_with_conditions -.-> lab-422097{{"MongoDB の基本型を使用する"}} mongodb/use_numeric_data_types -.-> lab-422097{{"MongoDB の基本型を使用する"}} mongodb/use_string_data_types -.-> lab-422097{{"MongoDB の基本型を使用する"}} end

数値の扱い

このステップでは、MongoDB で数値型のデータを扱う方法を学び、データベースに数値を格納および操作するさまざまな方法を探ります。

MongoDB の数値型を理解する

MongoDB は、整数型と浮動小数点数型を含むいくつかの数値型をサポートしています。まず、MongoDB シェルを起動してこれらの型を調べましょう。

まず、ターミナルを開いて MongoDB シェルを起動します。

mongosh

次に、数値操作を示すためのデータベースとコレクションを作成しましょう。

use numbers_lab
db.createCollection("products")

整数と小数の挿入

さまざまな数値型の商品を追加しましょう。

db.products.insertMany([
    {
        name: "Laptop",
        price: 999,           // 整数
        stock: 50,            // 整数
        discount: 0.1,        // 小数
        rating: 4.5           // 浮動小数点数
    },
    {
        name: "Smartphone",
        price: 599,
        stock: 100,
        discount: 0.15,
        rating: 4.7
    }
])

出力例

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

数値演算

MongoDB では、さまざまな数値演算を実行できます。いくつか示しましょう。

// 価格が 500 を超える商品を検索
db.products.find({ price: { $gt: 500 } })

// 在庫を増やして更新
db.products.updateOne(
    { name: "Laptop" },
    { $inc: { stock: 10 } }
)

// 評価が 4 以上の商品を検索
db.products.find({ rating: { $gte: 4 } })

覚えておくべきポイント

  • 整数は小数点のない整数です
  • 浮動小数点数は小数部分を持つことができます
  • MongoDB では、数値演算に $gt(より大きい)、$lt(より小さい)、$inc(増分)を使用します

文字列データの処理

このステップでは、MongoDB で文字列型のデータを扱う方法を学び、データベースに文字列を格納、照会、操作するさまざまな方法を探ります。

MongoDB の文字列型を理解する

MongoDB は強力な文字列処理機能を備えています。前のステップで作成したデータベースを引き続き使用して、文字列操作を示します。

まず、MongoDB シェルにいることを確認します。

mongosh

既存のデータベースに切り替えます。

use numbers_lab

文字列データの挿入と照会

文字列フィールドを持つドキュメントを追加しましょう。

db.products.insertMany([
    {
        name: "Wireless Headphones",
        brand: "TechSound",
        description: "High-quality noise-canceling headphones",
        color: "Black",
        tags: ["electronics", "audio", "wireless"]
    },
    {
        name: "Smart Watch",
        brand: "FitTech",
        description: "Advanced fitness tracking smartwatch",
        color: "Silver",
        tags: ["wearables", "fitness", "technology"]
    }
])

文字列照会操作

MongoDB は文字列データを照会するさまざまな方法を提供しています。

// 正確な名前で商品を検索
db.products.find({ name: "Smart Watch" })

// 正規表現を使用した大文字小文字を区別しない検索
db.products.find({ brand: { $regex: /tech/i } })

// タグの配列内で検索
db.products.find({ tags: "electronics" })

文字列操作メソッド

文字列操作も行うことができます。

// 説明を更新
db.products.updateOne(
    { name: "Wireless Headphones" },
    { $set: { description: description.toUpperCase() } }
)

// 文字列の長さを確認
db.products.find({
    $expr: { $gt: [{ $strLenCP: "$name" }, 10] }
})

覚えておくべきポイント

  • MongoDB の文字列は UTF-8 でエンコードされています
  • パターンマッチングには $regex を使用します
  • 配列には文字列要素を含めることができます
  • MongoDB はさまざまな文字列操作メソッドをサポートしています

ブール値の使用

このステップでは、MongoDB でブール型のデータを扱う方法を学び、データベースに真偽値を格納、照会、使用する方法を探ります。

MongoDB のブール型を理解する

ブール値は、データ内の真偽条件を表すために重要です。ブール演算を示すために、既存のデータベースを引き続き使用します。

まず、MongoDB シェルにいることを確認します。

mongosh

既存のデータベースに切り替えます。

use numbers_lab

ブールフィールドを持つドキュメントの挿入

ブール属性を持つ商品を追加しましょう。

db.products.insertMany([
    {
        name: "Premium Bluetooth Speaker",
        isWireless: true,
        isInStock: true,
        hasBluetooth: true,
        supportsBattery: true
    },
    {
        name: "Wired Gaming Headset",
        isWireless: false,
        isInStock: false,
        hasBluetooth: false,
        supportsBattery: false
    }
])

ブール照会操作

MongoDB は、ブールフィールドを照会する強力な方法を提供しています。

// 無線機器を検索
db.products.find({ isWireless: true })

// 在庫切れの商品を検索
db.products.find({ isInStock: false })

// 複雑なブール照会
db.products.find({
    $and: [
        { isWireless: true },
        { hasBluetooth: true }
    ]
})

ブール値の更新

ブールフィールドを簡単に更新できます。

// 在庫状況を更新
db.products.updateOne(
    { name: "Wired Gaming Headset" },
    { $set: { isInStock: true } }
)

// ブール値を反転させる
db.products.updateOne(
    { name: "Premium Bluetooth Speaker" },
    { $not: { isWireless: true } }
)

覚えておくべきポイント

  • ブール値は true または false のいずれかです
  • 複雑な照会には $and$or などの論理演算子を使用します
  • ブールフィールドは、フラグや状態追跡に役立ちます
  • MongoDB は、他のデータ型と同じようにブールフィールドを扱います

日付と時刻の格納

このステップでは、MongoDB で日付と時刻のデータ型を扱う方法を学び、時系列データを格納、照会、操作するさまざまな方法を探ります。

MongoDB の日付型を理解する

MongoDB は強力な日付と時刻の処理機能を備えています。日付操作を示すために、既存のデータベースを引き続き使用します。

まず、MongoDB シェルにいることを確認します。

mongosh

既存のデータベースに切り替えます。

use numbers_lab

日付フィールドを持つドキュメントの挿入

日付に関連するさまざまなフィールドを持つ商品を追加しましょう。

db.products.insertMany([
    {
        name: "Laptop Pro",
        releaseDate: new Date(),
        lastUpdated: new Date(),
        warrantyExpiration: new Date("2025-12-31"),
        manufacturingDate: new Date("2023-01-15")
    },
    {
        name: "Smartphone Elite",
        releaseDate: new Date("2023-06-01"),
        lastUpdated: new Date(),
        warrantyExpiration: new Date("2024-06-01"),
        manufacturingDate: new Date("2023-05-15")
    }
])

日付照会操作

MongoDB は高度な日付照会機能を提供しています。

// 特定の日付以降にリリースされた商品を検索
db.products.find({
    releaseDate: { $gt: new Date("2023-01-01") }
})

// 翌年に保証期間が切れる商品を検索
db.products.find({
    warrantyExpiration: {
        $gte: new Date(),
        $lt: new Date(new Date().setFullYear(new Date().getFullYear() + 1))
    }
})

// 特定の月に製造された商品を取得
db.products.find({
    $expr: {
        $eq: [{ $month: "$manufacturingDate" }, 5]
    }
})

日付操作メソッド

さまざまな日付関連の操作を行うことができます。

// 最終更新日を更新
db.products.updateOne(
    { name: "Laptop Pro" },
    { $currentDate: { lastUpdated: true } }
)

// 日付に日数を加える
db.products.updateOne(
    { name: "Smartphone Elite" },
    {
        $set: {
            extendedWarranty: new Date(
                new Date("2024-06-01").setDate(
                    new Date("2024-06-01").getDate() + 30
                )
            )
        }
    }
)

覚えておくべきポイント

  • MongoDB は日付を完全な日付オブジェクトとして格納します
  • new Date() を使用して現在のタイムスタンプを作成します
  • 比較演算子を使用して日付を比較します
  • MongoDB は日付コンポーネントを抽出するメソッドを提供します
  • 日付はデフォルトで UTC で格納されます

ObjectId の管理

このステップでは、MongoDB の ObjectId について学び、それが一意の識別子としてどのように機能するか、およびデータベースでそれを操作する方法を理解します。

MongoDB の ObjectId を理解する

ObjectId は、MongoDB によって各ドキュメントに自動的に生成される特殊な識別子です。その特性と使用方法を調べます。

まず、MongoDB シェルにいることを確認します。

mongosh

既存のデータベースに切り替えます。

use numbers_lab

ObjectId の作成と調査

ドキュメントを挿入して、その一意の識別子を調べましょう。

// ドキュメントを挿入して、その ObjectId を観察する
db.users.insertOne({
    username: "johndoe",
    email: "[email protected]",
    registrationDate: new Date()
})

// 挿入されたドキュメントを取得する
const newUser = db.users.findOne({ username: "johndoe" })

ObjectId のプロパティとメソッド

ObjectId にはいくつかの興味深いプロパティがあります。

// ObjectId のタイムスタンプを取得する
const timestamp = newUser._id.getTimestamp()
print("Document created at:", timestamp)

// 新しい ObjectId を生成する
const customId = new ObjectId()
print("Custom ObjectId:", customId)

照会での ObjectId の使用

正確なドキュメント検索に ObjectId を使用できます。

// 正確な ObjectId でドキュメントを検索する
db.users.findOne({ _id: newUser._id })

// ObjectId が有効かどうかを確認する
const isValid = ObjectId.isValid(newUser._id)
print("Is ObjectId valid?", isValid)

高度な ObjectId 操作

MongoDB は、ObjectId を抽出および操作するメソッドを提供しています。

// ObjectId を比較する
const anotherUser = db.users.insertOne({
    username: "janedoe",
    email: "[email protected]"
})

// 1 つの ObjectId がもう 1 つより前かどうかを確認する
const isEarlier = newUser._id < anotherUser.insertedId
print("Is first user's ID earlier?", isEarlier)

覚えておくべきポイント

  • ObjectId は 12 バイトの一意の識別子です
  • タイムスタンプ、マシン識別子、プロセス ID、およびランダム値が含まれています
  • 明示的に指定されない場合、すべてのドキュメントに自動的に ObjectId が付与されます
  • ObjectId はソートやドキュメントの作成日時の追跡に使用できます

まとめ

この実験では、MongoDB で異なる数値型のデータ、すなわち整数型と浮動小数点数型を扱う方法を学びました。$gt$lt$inc などの演算子を使用して、数値データを挿入、照会、更新する方法を探りました。また、文字列データの扱い方、ブール値の操作、日付と時刻情報の格納、および MongoDB データベース内の ObjectId の管理についても理解しました。

また、照会、更新、および文字列データの操作など、さまざまな文字列操作を行う方法も学びました。この実験では、MongoDB が提供するさまざまな文字列関連の演算子とメソッドの使用方法を扱い、アプリケーション内の文字列情報を効果的に扱う方法を学びました。