Docs Menu
Docs Home
/ / /
Java Reactive Streams ドライバー
/

時系列データ

項目一覧

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

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

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

  • 測定値

  • 測定のタイムスタンプ

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

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

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

重要

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

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

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

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

  • メソッドで TimeseriesOptions が設定された CreateCollectionOptionstimeSeriesOptions() オブジェクト

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

MongoDatabase database = mongoClient.getDatabase("fall_weather");
TimeSeriesOptions tsOptions = new TimeSeriesOptions("timestamp");
CreateCollectionOptions collectionOptions = new CreateCollectionOptions().timeSeriesOptions(tsOptions);
database.createCollection("october2024", collectionOptions);

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

ListCollectionsPublisher<Document> listCollectionsPublisher = database.listCollections();
Flux.from(listCollectionsPublisher)
.doOnNext(System.out::println)
.blockLast();
Document{{name=october2024, type=timeseries, options=Document{{timeseries=Document{{timeField=timestamp, granularity=seconds, bucketMaxSpanSeconds=3600}}}}, info=Document{{readOnly=false}}}}
...

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

Tip

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

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

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

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

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

MongoCollection<Document> collection = database.getCollection("october2024");
// Temperature data for October 1, 2024
Document temperature1 = new Document("temperature", 54)
.append("location", "New York City")
.append("timestamp", new Date(1727755200000L));
// Temperature data for October 2, 2024
Document temperature2 = new Document("temperature", 55)
.append("location", "New York City")
.append("timestamp", new Date(1727841600000L));
Publisher<InsertManyResult> insertPublisher =
collection.insertMany(Arrays.asList(temperature1, temperature2));
Mono.from(insertPublisher).block();

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

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

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

集計操作の実行の詳細については、「集計フレームワークガイド」を参照してください。

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

戻る

Data Formats