Docs Menu
Docs Home
/ / /
PyMongo
/

時系列データ

項目一覧

  • Overview
  • 時系列コレクションの作成
  • 時系列データの保存
  • 時系列データのクエリ
  • 詳細情報
  • API ドキュメント

このガイドでは、 PyMongoを使用して 時系列データ を保存し、操作する方法を学習できます。

時系列データは、次のコンポーネントで構成されています。

  • 測定値

  • 測定のタイムスタンプ

  • 測定を説明するメタデータ

次の表では、時系列データを保存できるサンプル状況について説明します。

状況
測定値
Metadata
業種別の月間売上の記録
USD 建てでの収益
会社、国
気象変化の追跡
降量レベル
ロケーション、センサータイプ
家一軒の価格の変動を記録する
月額料金
ロケーション、通貨

重要

時系列コレクション用のサーバー バージョン

時系列コレクションを作成して操作するには、MongoDB Server 5.0以降を実行している配置に接続する必要があります。

時系列コレクションを作成するには、次の引数を create_collection() メソッドに渡します。

  • 作成する新しいコレクションの名前

  • timeseries argument

timeseries 引数のタイプは dict です。これには、次のフィールドが含まれています。

  • timeField: 各 時系列ドキュメントのタイムスタンプを保存するフィールドを指定します。

  • metaField: 各 時系列ドキュメントのメタデータを保存するフィールドを指定します。

  • granularity: 連続するタイムスタンプ間のおおよその時間を指定します。 指定できる値は、 'seconds''minutes''hours'です。

  • bucketMaxSpanSeconds: 同じバケット内のタイムスタンプ間の最大時間を設定する。

  • bucketRoundingSeconds: MongoDBが新しいバケットの最小タイムスタンプを設定するときに切り捨てる秒数を設定します。 bucketMaxSpanSeconds と等しくなければなりません。

これらのフィールドの詳細については、 コマンド フィールドを参照してください。

次の例では、timeField オプションを "timestamp" に設定して、october2024 という名前の時系列コレクションを作成します。

database = client.get_database("weather")
time_series_options = {
"timeField": "timestamp"
}
database.create_collection("october2024", timeseries=time_series_options)

コレクションが正常に作成されたかどうかを確認するには、データベースのすべてのコレクションのリストを取得し、コレクション名でフィルタリングします。

print(list(database.list_collections(filter={'name': 'october2024'})))
{
"name": "october2024",
"type": "timeseries",
"options": {
"timeseries": {
"timeField": "timestamp",
"granularity": "seconds",
"bucketMaxSpanSeconds": 3600
}
},
"info": {
"readOnly": False
}
}

時系列コレクションにデータを挿入するには、 insert_one()またはinsert_many()メソッドを使用し、挿入された各ドキュメントで測定値、タイムスタンプ、メタデータを指定します。

ドキュメントの挿入の詳細については、「 ドキュメントの挿入 」を参照してください。

この例では、ニューヨーク市の温度データを、october2024 時系列コレクションの作成 で作成された 時系列コレクションに挿入します。各ドキュメントには、次のフィールドが含まれています。

  • temperature、温度測定値を華氏単位で保存

  • location、場所のメタデータを保存する

  • timestampは、測定タイムスタンプを保存します

from datetime import datetime
collection = database["october2024"]
document_list = [
{ "temperature": 77, "location": "New York City", "timestamp": datetime(2024, 10, 22, 6, 0, 0) },
{ "temperature": 74, "location": "New York City", "timestamp": datetime(2024, 10, 23, 6, 0, 0) }
]
collection.insert_many(document_list)

Tip

日付と時刻の形式設定

datetimePyMongoでの オブジェクトの使用の詳細については、「 日付と時刻 」を参照してください。

時系列コレクションに保存されているデータをクエリするには、他のコレクションに対して読み取りまたは集計操作を実行するときに使用するのと同じ構文と規則を使用します。 これらの操作の詳細については、「 MongoDBからのデータの読み取り 」および「 集計によるデータの変換 」を参照してください。

このガイドの概念の詳細については、次のMongoDB Serverマニュアル エントリを参照してください。

このガイドで言及されているメソッドについて詳しくは、次のAPIドキュメントを参照してください。

戻る

汎用一意 ID(UUID)