Docs Menu
Docs Home
/ / /
Laravel MongoDB
/

Time Series 컬렉션

이 가이드 에서는 Laravel 통합을 사용하여 time series 컬렉션을 만들고 상호 작용 방법을 학습 수 있습니다. 이러한 컬렉션은 다음 구성 요소로 구성된 Time Series 데이터 저장 .

  • 측정 수량

  • 측정 타임스탬프

  • 측정값을 설명하는 메타데이터

다음 표에서는 Time Series 데이터 를 저장 수 있는 샘플 상황을 설명합니다.

상황
측정 수량
Metadata

산업별 월별 매출 기록

USD 기준 수익

회사, 국가

날씨 변화 추적

강수량 수준

위치, 센서 유형

기록적인 주택 가격 변동

월 임대료

위치, 통화

중요

Time Series 컬렉션의 서버 버전

Time Series 컬렉션을 만들고 상호 작용하려면 MongoDB Server 5.0 이상을 실행하는 배포에 연결되어 있어야 합니다.

time series 컬렉션 만들어 Time Series 데이터 저장 수 있습니다. time series 컬렉션 만들려면 마이그레이션 클래스를 만들고 up() 함수를 추가하여 컬렉션 구성을 지정합니다. up() 함수에서 새 컬렉션의 이름과 timeseries 옵션을 Schema::create() 메서드에 전달합니다.

마이그레이션 클래스 생성에 대해 자세히 학습 스키마 빌더 가이드 에서 Laravel 마이그레이션 수행 을 참조하세요.

timeseries 옵션을 설정할 때 다음 필드를 포함합니다.

  • timeField: 각 time series 문서 에 타임스탬프를 저장하는 필드 를 지정합니다.

  • metaField: 각 time series 문서 에 메타데이터 를 저장하는 필드 를 지정합니다.

  • granularity: 연속된 타임스탬프 사이의 대략적인 시간을 지정합니다. 가능한 값은 'seconds', 'minutes''hours' 입니다.

이 예시 마이그레이션 클래스는 다음 구성을 사용하여 precipitation time series 컬렉션 생성합니다.

  • timeField 로 설정됩니다. 'timestamp'

  • metaField 로 설정됩니다. 'location'

  • granularity 로 설정됩니다. 'minutes'

<?php
declare(strict_types=1);
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
protected $connection = 'mongodb';
/**
* Run the migrations.
*/
public function up(): void
{
$options = [
'timeseries' => [
'timeField' => 'timestamp',
'metaField' => 'location',
'granularity' => 'minutes',
],
];
Schema::create('precipitation', null, $options);
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::drop('precipitation');
}
};

time series 컬렉션 성공적으로 생성되었는지 확인하려면 Schema::hasCollection() 메서드를 호출하고 컬렉션 이름을 매개 변수로 전달합니다.

$result = Schema::hasCollection('precipitation');
echo $result;

컬렉션 존재하는 경우 hasCollection() 메서드는 true 값을 반환합니다.

문서를 insert() 메서드에 전달하고 삽입된 각 문서 에 측정값, 타임스탬프 및 메타데이터 지정하여 time series 컬렉션 에 데이터를 삽입할 수 있습니다.

컬렉션 에 문서를 삽입하는 방법에 대해 자세히 학습 쓰기 작업 가이드 에서 문서 삽입을 참조하세요.

이 예시 에서는 Time Series 컬렉션 만들기 예시 에서 만든 precipitation Time Series time series 컬렉션 에 뉴욕시 강수량 데이터를 삽입합니다. 각 문서 에는 다음 필드가 포함되어 있습니다.

  • precipitation_mm강수량 측정값을 밀리미터 단위로 저장합니다.

  • location위치 메타데이터 를 저장합니다.

  • timestamp, 측정 컬렉션 의 시간을 저장합니다.

$data = [
[
'precipitation_mm' => 0.5,
'location' => 'New York City',
'timestamp' => new UTCDateTime(Carbon::create(2023, 9, 12, 0, 0, 0, 'CET')),
],
[
'precipitation_mm' => 2.8,
'location' => 'New York City',
'timestamp' => new UTCDateTime(Carbon::create(2023, 9, 17, 0, 0, 0, 'CET')),
],
];
$result = DB::table('precipitation')
->insert($data);

참고

앞의 예시 에서는 Laravel 쿼리 빌더 를 사용하여 time series 컬렉션 에 문서를 삽입합니다. 또는 컬렉션 나타내는 Eloquent 모델을 생성하고 모델에 삽입 작업을 수행할 수 있습니다. 자세한 학습 은 Eloquent 모델 클래스 가이드 참조하세요.

다른 컬렉션에서 읽기 또는 집계 작업을 수행할 때 사용하는 것과 동일한 구문 및 규칙을 사용하여 time series 컬렉션 에 저장된 데이터를 쿼리 할 수 있습니다. 이러한 작업에 대한 자세한 내용은 추가 정보 섹션을 참조하세요.

이 가이드 에 언급된 개념에 학습 보려면 다음 MongoDB Server 매뉴얼 항목을 참조하세요.

데이터 쿼리에 대해 자세히 학습 쿼리 빌더 가이드 참조하세요.

집계 작업 수행에 대해 자세히 학습 애그리게이션 빌더 가이드 참조하세요.

돌아가기

데이터베이스 & collection

이 페이지의 내용