時系列クイックスタート
このクイックスタートでは、MongoDB Atlas または自己管理型配置で時系列コレクションを構成、作成、クエリする方法を説明します。
所要時間: 30 分
手順
Atlas クラスターを設定します。
Atlas クラスターをまだ作成していない場合は、無料の M0 クラスターを作成してください。Atlas クラスターの作成方法の詳細については、クラスターの作成を参照してください。
注意
既存のクラスターを使用している場合、Atlas プロジェクトに対して
Project Data Access Admin
以上のアクセス権が必要です。新しいクラスターを作成する場合は、必要な権限がデフォルトで付与されます。
プロジェクトごとに作成できる
M0
無料のクラスターは 1 つだけです。左側のサイドバーで、[概要] をクリックします。クラスターを選択し、[Connect] をクリックします。
「ツールを使用してデータにアクセス」の下にある Shell をクリックします。
もしまだ行っていない場合は、提供された手順に従って
mongosh
をダウンロードおよびインストールしてください。
接続文字列をコピーして、Done をクリックしてください。
新しいターミナルウィンドウを開き、配置に接続します。
mongosh
を使用して、自己管理型配置または Atlas 配置に接続します。以下に例を挙げます。
mongosh "mongodb+srv://my-test-cluster.1twap.mongodb.net/" --apiVersion 1 --username <user>
空の時系列コレクションを作成してください。
注意
この演習では、株式ティッカーのサンプルデータを使用します。date
フィールドは時間データを保存し、ticker
フィールドは個別の株式を識別します。
timeField
、metaField
、およびgranularity
を設定します。timeseries: { timeField: "date", metaField: "ticker", granularity: "seconds" } または粒度をカスタムして指定します:
バージョン 6.3 で追加。
timeseries: { timeField: "date", metaField: "ticker", granularity: "seconds", bucketMaxSpanSeconds: "300", bucketRoundingSeconds: "300" } db.createCollection()
メソッドを使用してコレクションを作成します。db.createCollection( "stocks", { timeseries: { timeField: "date", metaField: "ticker", granularity: "seconds" } }) これにより、
stocks
という名前の空の時系列コレクションが作成されます。
サンプルドキュメントを追加してください。
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 をクリックしてサンプルデータを表示できます。
データをクエリします。
時系列コレクションは、他の 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")} });
依存関係をインストールします。
詳細な手順については、「前提条件 」を参照してください。
Homebrew を使用する場合は、ターミナルで次のコマンドを実行できます。
brew install mongodb-atlas-cli その他のオペレーティング システムへのインストール手順については、「 Atlas CLI のインストール 」を参照してください。
Docker では、MongoDB イメージをプルしてキャッシュするためにネットワーク接続が必要です。
MacOS または Windows の場合は、 Docker Desktop v4.31 + をインストールします。
Linux の場合は、 Docker Engine v27.0 + をインストールします。
Atlas のローカル配置を設定します。
Atlas アカウントをお持ちでない場合は、ターミナルで
atlas setup
を実行するか、新しいアカウントを作成してください。atlas deployments setup
を実行し、プロンプトに従ってローカル配置を作成します。 配置への接続を求められたら、skip
を選択します。詳細な手順については、「ローカル Atlas 配置の作成 」を参照してください。
mongosh
をインストールします。
新しいターミナルウィンドウを開き、配置に接続します。
mongosh
を使用して、自己管理型配置または Atlas 配置に接続します。以下に例を挙げます。
mongosh "mongodb+srv://my-test-cluster.1twap.mongodb.net/" --apiVersion 1 --username <user>
空の時系列コレクションを作成してください。
注意
この演習では、株式ティッカーのサンプルデータを使用します。date
フィールドは時間データを保存し、ticker
フィールドは個別の株式を識別します。
timeField
、metaField
、およびgranularity
を設定します。timeseries: { timeField: "date", metaField: "ticker", granularity: "seconds" } または粒度をカスタムして指定します:
バージョン 6.3 で追加。
timeseries: { timeField: "date", metaField: "ticker", granularity: "seconds", bucketMaxSpanSeconds: "300", bucketRoundingSeconds: "300" } db.createCollection()
メソッドを使用してコレクションを作成します。db.createCollection( "stocks", { timeseries: { timeField: "date", metaField: "ticker", granularity: "seconds" } }) これにより、
stocks
という名前の空の時系列コレクションが作成されます。
サンプルドキュメントを追加してください。
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 をクリックしてサンプルデータを表示できます。
データをクエリします。
時系列コレクションは、他の 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")} });
mongosh
をインストールします。
新しいターミナルウィンドウを開き、配置に接続します。
mongosh
を使用して、自己管理型配置または Atlas 配置に接続します。以下に例を挙げます。
mongosh "mongodb+srv://my-test-cluster.1twap.mongodb.net/" --apiVersion 1 --username <user>
空の時系列コレクションを作成してください。
注意
この演習では、株式ティッカーのサンプルデータを使用します。date
フィールドは時間データを保存し、ticker
フィールドは個別の株式を識別します。
timeField
、metaField
、およびgranularity
を設定します。timeseries: { timeField: "date", metaField: "ticker", granularity: "seconds" } または粒度をカスタムして指定します:
バージョン 6.3 で追加。
timeseries: { timeField: "date", metaField: "ticker", granularity: "seconds", bucketMaxSpanSeconds: "300", bucketRoundingSeconds: "300" } db.createCollection()
メソッドを使用してコレクションを作成します。db.createCollection( "stocks", { timeseries: { timeField: "date", metaField: "ticker", granularity: "seconds" } }) これにより、
stocks
という名前の空の時系列コレクションが作成されます。
サンプルドキュメントを追加してください。
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 をクリックしてサンプルデータを表示できます。
データをクエリします。
時系列コレクションは、他の 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> }
学習の概要
このクイックスタートは、新しい時系列コレクションの作成に焦点を当てています。時系列コレクションは時間データ用に最適化されているため、そのパフォーマンスは作成時の設定方法に大きく依存します。詳細については、「時系列コレクションの考慮事項」をご参照ください。
次のステップ
既存のデータを時系列コレクションに移行するには、時系列コレクションにデータを移行するを参照してください。
時系列コレクションをシャードするには、「時系列コレクションをシャードする」を参照してください。
時系列コレクションに特有の集計およびクエリの動作については、集計と演算子に関する考慮事項をご覧ください。
詳細
MongoDB が時系列データを内部的に保存する方法の詳細については、「時系列データについて」をご覧ください。
MongoDB 6.3 以降のカスタム バケット パラメータの詳細については、カスタム バケット パラメータの使用をご覧ください。