Docs Menu
Docs Home
/ / /
C ドライバー
/

時系列データ

項目一覧

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

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

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

  • 測定値

  • 測定のタイムスタンプ

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

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

状況
測定値
Metadata

業種別の月間売上の記録

USD 建てでの収益

会社、国

気象変化の追跡

降量レベル

ロケーション、センサータイプ

家一軒の価格の変動を記録する

月額料金

ロケーション、通貨

重要

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

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

時系列データを保存するには、時系列コレクションを作成します。時系列コレクションを作成するには、次のパラメータを mongoc_database_create_collection() 関数に渡します。

  • コレクションを作成するデータベース

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

  • timeField オプションを指定する timeseriesオブジェクト

次の例では、fall_weatherデータベースに timeField オプションを "timestamp" フィールドに設定して、october2024 という名前の時系列コレクションを作成します。

// Initialize the MongoDB C Driver
mongoc_init ();
// Create a new client instance
mongoc_client_t *client = mongoc_client_new ("<connection string>");
// Get a handle on the database
mongoc_database_t *database = mongoc_client_get_database (client, "fall_weather");
// Create options for the time series collection
bson_t *opts = BCON_NEW (
"timeseries", "{",
"timeField", BCON_UTF8 ("timestamp"),
"}");
// Create the time series collection
bson_error_t error;
mongoc_collection_t *collection = mongoc_database_create_collection (database, "october2024", opts, &error);
if (!collection) {
fprintf(stderr, "Error creating collection: %s\n", error.message);
}
bson_destroy (opts);

時系列コレクションが正常に作成されたことを確認するには、fall_weatherデータベースで mongoc_database_find_collections_with_opts() 関数を実行し、結果を出力します。

// List collections in the database
mongoc_cursor_t *cursor = mongoc_database_find_collections_with_opts (database, NULL);
const bson_t *doc;
while (mongoc_cursor_next (cursor, &doc))
{
char *str = bson_as_canonical_extended_json (doc, NULL);
printf ("%s\n", str);
bson_free (str);
}
// Check for cursor errors
if (mongoc_cursor_error (cursor, &error))
{
fprintf (stderr, "Cursor error: %s\n", error.message);
}
mongoc_cursor_destroy (cursor);
{ "name" : "october2024", "type" : "timeseries", "options" : { "timeseries" : { "timeField" : "timestamp", "granularity" : "seconds", "bucketMaxSpanSeconds" : { "$numberInt" : "3600" } } }, "info" : { "readOnly" : false } }
...

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

コレクションにドキュメントを挿入する方法の詳細については、「 ドキュメントの挿入 」ガイドを参照してください。

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

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

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

  • timestampは、測定コレクションの時間を保存します

const bson_t *insert_doc = BCON_NEW (
"temperature", BCON_DOUBLE (70.0),
"location", "{", "city", BCON_UTF8 ("New York"), "}",
"timestamp", BCON_DATE_TIME (1633046400000));
if (!mongoc_collection_insert_one (collection, insert_doc, NULL, NULL, &error)) {
fprintf(stderr, "Error inserting document: %s\n", error.message);
}

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

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

読み取り操作の実行の詳細については、「 MongoDB からのデータの読み取り 」を参照してください。

集計操作の実行の詳細については、「集計によるデータの変換 」ガイドを参照してください。

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

戻る

データベースとコレクション