Docs Menu
Docs Home
/ / /
Java 동기화
/ /

문서 데이터 형식: 레코드

이 페이지의 내용

  • 개요
  • 레코드 직렬화 및 역직렬화
  • 레코드 예시
  • 레코드 삽입
  • 레코드 조회
  • 주석을 사용하여 구성 요소 변환 지정하기
  • 주석 처리된 레코드 예시
  • 주석 처리된 레코드 삽입
  • 주석 처리된 레코드 조회

이 가이드에서는 Java 레코드를 사용하여 MongoDB Java 드라이버에 데이터를 저장하고 조회하는 방법에 대해 설명합니다. Java 레코드는 데이터를 모델링하고 비즈니스 논리를 데이터 표현과 분리하는 데 자주 사용되는 Java 클래스 유형입니다.

Java 16 이상에서 Java 레코드를 선언할 수 있습니다. Java 17 언어 업데이트: 레코드 클래스에서 레코드의 기능 및 제한 사항에 대해 자세히 알아보세요.

이전 버전의 Java 를 사용하는 경우 일반 Java 객체를 대신 사용할 수 있습니다. 구현 에 대한 자세한 내용은 문서 데이터 형식: POJO 가이드 를 참조하세요.

이 드라이버는 기본 코덱 레지스트리를 사용하여 MongoDB 읽기 및 쓰기 작업에 대한 Java 레코드 인코딩 및 디코딩을 기본적으로 지원합니다. 기본 코덱 레지스트리는 Java 유형을 인코딩 및 디코딩하는 방법을 정의하는 코덱이라는 클래스의 컬렉션입니다. 코덱 가이드에서 코덱 및 기본 코덱 레지스트리에 대해 자세히 알아보세요

이 섹션의 코드 예시는 데이터 스토리지 기기를 설명하는 다음 샘플 레코드를 참조합니다.

public record DataStorageRecord(
String productName,
double capacity
) {}

다음 코드에 표시된 대로 DataStorageRecord 인스턴스를 삽입할 수 있습니다.

MongoCollection<DataStorageRecord> collection = database.getCollection("data_storage_devices", DataStorageRecord.class);
// insert the record
collection.insertOne(new DataStorageRecord("2TB SSD", 1.71));

다음 코드에 표시된 대로 문서를 DataStorageRecord 인스턴스로 검색하고 출력할 수 있습니다.

MongoCollection<DataStorageRecord> collection = database.getCollection("data_storage_devices", DataStorageRecord.class);
// retrieve and print the records
List<DataStorageRecord> records = new ArrayList<DataStorageRecord>();
collection.find().into(records);
records.forEach(System.out::println);
DataStorageRecord[productName=1TB SSD, capacity=1.71]

이 섹션에서는 레코드 구성 요소의 직렬화 동작을 구성하는 데 사용할 수 있는 주석을 설명하고 주석 동작을 보여주는 예시를 제공합니다.

org.bson.codecs.records.annotations 패키지는 더 이상 사용되지 않습니다. org.bson.codecs.pojo.annotations 에서 동등한 것을 사용합니다. 패키지를 대신 사용합니다.

레코드 구성 요소에서 다음 주석을 사용할 수 있습니다.

주석 이름
설명
BsonId
직렬화할 구성 요소를 _id 속성으로 지정합니다.
BsonProperty
레코드 구성 요소를 BSON으로 변환할 때 사용자 정의 문서 필드 이름을 지정합니다. 필드 이름을 매개 변수로 허용합니다.
BsonRepresentation
레코드 구성 요소 유형과 다른 경우 저장할 BSON type을 지정합니다. BSON type을 매개 변수로 허용합니다.

이 섹션의 코드 예시에서는 네트워크 기기를 설명하는 다음 샘플 레코드를 참조합니다.

import org.bson.BsonType;
import org.bson.codecs.pojo.annotations.BsonProperty;
import org.bson.codecs.pojo.annotations.BsonId;
import org.bson.codecs.pojo.annotations.BsonRepresentation;
public record NetworkDeviceRecord(
@BsonId()
@BsonRepresentation(BsonType.OBJECT_ID)
String deviceId,
String name,
@BsonProperty("type")
String deviceType
)
{}

다음 코드에 표시된 대로 DataStorageRecord 인스턴스를 삽입할 수 있습니다.

MongoCollection<NetworkDeviceRecord> collection = database.getCollection("network_devices", NetworkDeviceRecord.class);
// insert the record
String deviceId = new ObjectId().toHexString();
collection.insertOne(new NetworkDeviceRecord(deviceId, "Enterprise Wi-fi", "router"));

MongoDB에 삽입된 문서는 다음과 같습니다.

{
_id: ObjectId("fedc..."),
name: 'Enterprise Wi-fi',
type: 'router'
}

다음 코드에 표시된 대로 문서를 NetworkDeviceRecord 인스턴스로 검색하고 출력할 수 있습니다.

MongoCollection<NetworkDeviceRecord> collection = database.getCollection("network_devices", NetworkDeviceRecord.class);
// return all documents in the collection as records
List<NetworkDeviceRecord> records = new ArrayList<NetworkDeviceRecord>();
collection.find().into(records);
records.forEach(System.out::println);
NetworkDeviceRecord[deviceId=fedc..., name=Enterprise Wi-fi, deviceType=router]

돌아가기

문서 데이터 형식: POJO