時系列コレクション
Overview
このガイドでは、MongoDB の時系列コレクションと、MongoDB Go ドライバーでの時系列コレクションの操作方法を学習できます。
時系列コレクションは一定期間にわたる測定値のシーケンスを効率的に保存します。 コレクションは、次の情報を含む時系列データで構成されています。
一定時間にわたって収集されたデータ
測定を説明するメタデータ
測定日
例 | 測定値 | Metadata |
---|---|---|
販売データ | 収益 | 会社 |
影響率 | 影響を受けた人口の量 | ロケーション |
時系列コレクションの作成
重要
時系列コレクションには MongoDB 5.0以降が必要です。
時系列コレクションを作成するには、次のパラメータを CreateCollection()
メソッドに渡します。
作成する新しいコレクションの名前
少なくとも時間フィールドを指定する
TimeSeriesOptions
オブジェクト
例
次の例では、 db
データベースにtemperature
を時間フィールドとして持つmarch2022
時系列コレクションを作成します。
db := client.Database("db") // Creates a time series collection that stores "temperature" values over time tso := options.TimeSeries().SetTimeField("temperature") opts := options.CreateCollection().SetTimeSeriesOptions(tso) db.CreateCollection(context.TODO(), "march2022", opts)
コレクションを作成したかどうかを確認するには、 "listCollections"
コマンドをRunCommand()
メソッドに送信します。
// Creates a command to list collections command := bson.D{{"listCollections", 1}} var result bson.M // Runs the command on the database commandErr := db.RunCommand(context.TODO(), command).Decode(&result) if commandErr != nil { panic(commandErr) } // Prints the command results output, outputErr := json.MarshalIndent(result, "", " ") if outputErr != nil { panic(outputErr) } fmt.Printf("%s\n", output)
{ ... "cursor": { "firstBatch": [ { "info": { "readOnly": false }, "name": "march2022", "options": { "timeseries": { ... } }, "type": "timeseries" }, ... }
時系列コレクションをクエリする
時系列コレクションをクエリするには、 がデータを取得して集計するのと同じ規則を使用します。
詳細情報
上記で説明されている操作の詳細については、次のガイドを参照してください。
API ドキュメント
このガイドで説明したメソッドや型の詳細については、次の API ドキュメントを参照してください。