Docs Menu

時系列クイックスタート

このクイックスタートでは、MongoDB Atlas または自己管理型配置で時系列コレクションを構成、作成、クエリする方法を説明します。

所要時間: 30 分

1
  1. 無料の Atlas アカウントを作成するか、既存のアカウントにサインインします。

  2. Atlas クラスターをまだ作成していない場合は、無料の M0 クラスターを作成してください。Atlas クラスターの作成方法の詳細については、クラスターの作成を参照してください。

    注意

    既存のクラスターを使用している場合、Atlas プロジェクトに対して Project Data Access Admin 以上のアクセス権が必要です。

    新しいクラスターを作成する場合は、必要な権限がデフォルトで付与されます。

    プロジェクトごとに作成できるM0無料のクラスターは 1 つだけです。

  3. 左側のサイドバーで、[概要] をクリックします。クラスターを選択し、[Connect] をクリックします。

  4. 「ツールを使用してデータにアクセス」の下にある Shell をクリックします。

    もしまだ行っていない場合は、提供された手順に従って mongosh をダウンロードおよびインストールしてください。

  5. 接続文字列をコピーして、Done をクリックしてください。

2

mongosh を使用して、自己管理型配置または Atlas 配置に接続します。以下に例を挙げます。

mongosh "mongodb+srv://my-test-cluster.1twap.mongodb.net/" --apiVersion 1
--username <user>
3
use timeseries

これにより、空の「timeseries」データベースが作成され、そのデータベースに切り替わります。

4

注意

この演習では、株式ティッカーのサンプルデータを使用します。date フィールドは時間データを保存し、ticker フィールドは個別の株式を識別します。

  1. timeFieldmetaField、および granularity を設定します。

    timeseries: {
    timeField: "date",
    metaField: "ticker",
    granularity: "seconds"
    }

    または粒度をカスタムして指定します:

    バージョン 6.3 で追加

    timeseries: {
    timeField: "date",
    metaField: "ticker",
    granularity: "seconds",
    bucketMaxSpanSeconds: "300",
    bucketRoundingSeconds: "300"
    }
  2. db.createCollection() メソッドを使用してコレクションを作成します。

    db.createCollection(
    "stocks",
    {
    timeseries: {
    timeField: "date",
    metaField: "ticker",
    granularity: "seconds"
    }
    })

    これにより、stocksという名前の空の時系列コレクションが作成されます。

5

db.collection.insertMany() メソッドを実行して、次のサンプルドキュメントをコレクションに追加してください。

db.stocks.insertMany([
{ ticker: "MDB", date: ISODate("2021-12-18T15:59:00.000Z"), close: 252.47, volume: 55046.00},
{ ticker: "MDB", date: ISODate("2021-12-18T15:58:00.000Z"), close: 252.93, volume: 44042.00},
{ ticker: "MDB", date: ISODate("2021-12-18T15:57:00.000Z"), close: 253.61, volume: 40182.00},
{ ticker: "MDB", date: ISODate("2021-12-18T15:56:00.000Z"), close: 253.63, volume: 27890.00},
{ ticker: "MDB", date: ISODate("2021-12-18T15:55:00.000Z"), close: 254.03, volume: 40270.00}
])

Atlas で MongoDB を実行している場合は、Browse collections をクリックしてサンプルデータを表示できます。

6

時系列コレクションは、他の MongoDB コレクションと同様にクエリします。詳細については、「時系列データのクエリについて」をご覧ください。

時系列データに対する一般的なクエリは、metaField をクエリして単一の時系列のデータを取得するか、timeField に対して範囲クエリを使用して特定の期間のデータを取得することです。

単一の時系列に対して metaField をクエリするには、次の手順を実行します。

db.stocks.find( { ticker: "MDB" } )

timeField を時間範囲でクエリするには、次の手順を実行します。

db.stocks.find({ date : {
$gte : ISODate("2021-12-18T15:50:00.000Z"),
$lte : ISODate("2021-12-18T15:56:00.000Z")}
});
1

詳細な手順については、「前提条件 」を参照してください。

  1. Atlas CLI をインストールします。

    Homebrew を使用する場合は、ターミナルで次のコマンドを実行できます。

    brew install mongodb-atlas-cli

    その他のオペレーティング システムへのインストール手順については、「 Atlas CLI のインストール 」を参照してください。

  2. Docker をインストールします。

    Docker では、MongoDB イメージをプルしてキャッシュするためにネットワーク接続が必要です。

2
  1. Atlas アカウントをお持ちでない場合は、ターミナルでatlas setupを実行するか、新しいアカウントを作成してください。

  2. atlas deployments setupを実行し、プロンプトに従ってローカル配置を作成します。 配置への接続を求められたら、 skipを選択します。

    詳細な手順については、「ローカル Atlas 配置の作成 」を参照してください。

3
4

mongosh を使用して、自己管理型配置または Atlas 配置に接続します。以下に例を挙げます。

mongosh "mongodb+srv://my-test-cluster.1twap.mongodb.net/" --apiVersion 1
--username <user>
5
use timeseries

これにより、空の「timeseries」データベースが作成され、そのデータベースに切り替わります。

6

注意

この演習では、株式ティッカーのサンプルデータを使用します。date フィールドは時間データを保存し、ticker フィールドは個別の株式を識別します。

  1. timeFieldmetaField、および granularity を設定します。

    timeseries: {
    timeField: "date",
    metaField: "ticker",
    granularity: "seconds"
    }

    または粒度をカスタムして指定します:

    バージョン 6.3 で追加

    timeseries: {
    timeField: "date",
    metaField: "ticker",
    granularity: "seconds",
    bucketMaxSpanSeconds: "300",
    bucketRoundingSeconds: "300"
    }
  2. db.createCollection() メソッドを使用してコレクションを作成します。

    db.createCollection(
    "stocks",
    {
    timeseries: {
    timeField: "date",
    metaField: "ticker",
    granularity: "seconds"
    }
    })

    これにより、stocksという名前の空の時系列コレクションが作成されます。

7

db.collection.insertMany() メソッドを実行して、次のサンプルドキュメントをコレクションに追加してください。

db.stocks.insertMany([
{ ticker: "MDB", date: ISODate("2021-12-18T15:59:00.000Z"), close: 252.47, volume: 55046.00},
{ ticker: "MDB", date: ISODate("2021-12-18T15:58:00.000Z"), close: 252.93, volume: 44042.00},
{ ticker: "MDB", date: ISODate("2021-12-18T15:57:00.000Z"), close: 253.61, volume: 40182.00},
{ ticker: "MDB", date: ISODate("2021-12-18T15:56:00.000Z"), close: 253.63, volume: 27890.00},
{ ticker: "MDB", date: ISODate("2021-12-18T15:55:00.000Z"), close: 254.03, volume: 40270.00}
])

Atlas で MongoDB を実行している場合は、Browse collections をクリックしてサンプルデータを表示できます。

8

時系列コレクションは、他の MongoDB コレクションと同様にクエリします。詳細については、「時系列データのクエリについて」をご覧ください。

時系列データに対する一般的なクエリは、metaField をクエリして単一の時系列のデータを取得するか、timeField に対して範囲クエリを使用して特定の期間のデータを取得することです。

単一の時系列に対して metaField をクエリするには、次の手順を実行します。

db.stocks.find( { ticker: "MDB" } )

timeField を時間範囲でクエリするには、次の手順を実行します。

db.stocks.find({ date : {
$gte : ISODate("2021-12-18T15:50:00.000Z"),
$lte : ISODate("2021-12-18T15:56:00.000Z")}
});
1

自己管理型の配置を実行している場合は、使用している MongoDB のバージョン、エディション、およびプラットフォームに応じたインストール手順に従ってください。

2
3

mongosh を使用して、自己管理型配置または Atlas 配置に接続します。以下に例を挙げます。

mongosh "mongodb+srv://my-test-cluster.1twap.mongodb.net/" --apiVersion 1
--username <user>
4
use timeseries

これにより、空の「timeseries」データベースが作成され、そのデータベースに切り替わります。

5

注意

この演習では、株式ティッカーのサンプルデータを使用します。date フィールドは時間データを保存し、ticker フィールドは個別の株式を識別します。

  1. timeFieldmetaField、および granularity を設定します。

    timeseries: {
    timeField: "date",
    metaField: "ticker",
    granularity: "seconds"
    }

    または粒度をカスタムして指定します:

    バージョン 6.3 で追加

    timeseries: {
    timeField: "date",
    metaField: "ticker",
    granularity: "seconds",
    bucketMaxSpanSeconds: "300",
    bucketRoundingSeconds: "300"
    }
  2. db.createCollection() メソッドを使用してコレクションを作成します。

    db.createCollection(
    "stocks",
    {
    timeseries: {
    timeField: "date",
    metaField: "ticker",
    granularity: "seconds"
    }
    })

    これにより、stocksという名前の空の時系列コレクションが作成されます。

6

db.collection.insertMany() メソッドを実行して、次のサンプルドキュメントをコレクションに追加してください。

db.stocks.insertMany([
{ ticker: "MDB", date: ISODate("2021-12-18T15:59:00.000Z"), close: 252.47, volume: 55046.00},
{ ticker: "MDB", date: ISODate("2021-12-18T15:58:00.000Z"), close: 252.93, volume: 44042.00},
{ ticker: "MDB", date: ISODate("2021-12-18T15:57:00.000Z"), close: 253.61, volume: 40182.00},
{ ticker: "MDB", date: ISODate("2021-12-18T15:56:00.000Z"), close: 253.63, volume: 27890.00},
{ ticker: "MDB", date: ISODate("2021-12-18T15:55:00.000Z"), close: 254.03, volume: 40270.00}
])

Atlas で MongoDB を実行している場合は、Browse collections をクリックしてサンプルデータを表示できます。

7

時系列コレクションは、他の MongoDB コレクションと同様にクエリします。詳細については、「時系列データのクエリについて」をご覧ください。

時系列データに対する一般的なクエリは、metaField をクエリして単一の時系列のデータを取得するか、timeField に対して範囲クエリを使用して特定の期間のデータを取得することです。

単一の時系列に対して metaField をクエリするには、次の手順を実行します。

db.stocks.find( { ticker: "MDB" } )

timeField を時間範囲でクエリするには、次の手順を実行します。

db.stocks.find({ date : {
$gte : ISODate("2021-12-18T15:50:00.000Z"),
$lte : ISODate("2021-12-18T15:56:00.000Z")}
});

このクイックスタートでは、以下のドキュメント構造を持つ stocks 時系列コレクションを作成します。

{
_id: ObjectId(...),
ticker: <string>,
date: ISODate(...),
close: <double>,
volume: <double>
}

このクイックスタートは、新しい時系列コレクションの作成に焦点を当てています。時系列コレクションは時間データ用に最適化されているため、そのパフォーマンスは作成時の設定方法に大きく依存します。詳細については、「時系列コレクションの考慮事項」をご参照ください。