時系列クイック スタート
このクイック スタートでは、 MongoDB Atlasまたは自己管理型配置で時系列コレクションを構成、作成、クエリする方法について説明します。
必要時間: 30 分
手順
Atlas クラスターを設定します。
Atlas クラスターがまだない場合は、 無料の M0 クラスターを作成します 。 Atlas クラスターの作成の詳細については、「 クラスターの作成 」を参照してください。
注意
Project Data Access Admin
既存のクラスターを使用している場合は、Atlasプロジェクトへの 以上のアクセス権が必要です。新しいクラスターを作成する場合は、必要な権限がデフォルトで付与されます。
プロジェクトごとに作成できる 無料クラスターは 1 つだけです。
M0
左側のサイドバーで、[ 概要 ] をクリックします。クラスターを選択し、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")} });
MongoDBと依存関係をインストールします。
自己管理型配置 を実行中場合は、 MongoDB のバージョン、エディション、およびプラットフォームのインストール手順に従います。
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 が時系列データを内部的に保存する方法の詳細については、「 時系列データについて 」を参照してください。
MongoDB6.3 以降のカスタム バケット パラメーターの詳細については、「 カスタム バケット パラメーターの使用 」を参照してください。