AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

레거시 API에서 마이그레이션

이 페이지에서는 기존 API에서 현재 API로 마이그레이션하기 위해 변경해야 하는 사항을 확인할 수 있습니다. 또한 현재 Java 드라이버의 고유한 기능과 새 API로 마이그레이션할 때 얻을 수 있는 이점에 대해서도 알아볼 수 있습니다.

mongodb-driver-legacy JAR로 패키징된 레거시 API에는 레거시 동기식 Java 드라이버가 포함되어 있으며 이전 버전의 드라이버에서 사용된 이름 지정 규칙을 사용합니다.

mongodb-driver-sync JAR로 패키징된 현재 API에는 현재 동기식 Java 드라이버가 포함되어 있습니다. CRUD 작업의 진입점으로 MongoCollection 인터페이스를 제공합니다. 여기에는 레거시 API가 포함되어 있지 않습니다.

레거시 API에서 현재 API로 마이그레이션을 수행하려면 코드에서 더 이상 레거시 API를 참조하지 않도록 하고, 필요한 경우 코드를 업데이트합니다. 그런 다음 애플리케이션 종속성에서 레거시 API와 이를 포함하는 모든 uber JAR을 현재 API JAR로 변경합니다.

애플리케이션을 업데이트하여 필요한 변경 사항을 처리하는 것 외에도 프로덕션으로 이동하기 전에 항상 옵션 및 반환 값에 다른 차이점이 있는지 확인합니다.

새로운 MongoDB Server 릴리스가 나올 때마다 레거시 API를 계속 사용할 수 있습니다. 그러나 레거시 API는 MongoDB Server 3.0 이상에서 도입된 업데이트를 지원하지 않습니다. 또한 레거시 API에는 현재 Java 드라이버의 특정 기능에 대한 지원이 부족합니다. 레거시가 아닌 API에서만 사용할 수 있는 일부 기능은 다음과 같습니다.

  • 단일 컬렉션, 데이터베이스 또는 배포에 대한 실시간 변경 사항을 모니터링하도록 설계된 MongoDB Server 기능인 change stream

  • 여러 문서에 대한 읽기 및 쓰기의 원자성을 보장하고 여러 작업, 컬렉션, 데이터베이스, 문서 및 샤드에 걸쳐 트랜잭션을 허용하는 다중 문서 ACID 트랜잭션

  • 일정 기간 동안의 측정값 시퀀스를 저장하고 time series 데이터에 대한 쿼리 효율성을 개선하는 time series 컬렉션

  • 민감한 워크로드를 암호화하고 암호화된 데이터를 쿼리할 수 있는 Queryable Encryption

  • Java 레코드 또는 비즈니스 로직과 데이터 표현을 분리하고 상용구 코드를 줄여주는 간결한 Java 클래스

  • MongoDB 문서와 Java 객체 간의 자동 또는 사용자 지정 매핑을 제공하는 네이티브 POJO 지원

현재 API 의 더 많은 기능에 대해 학습 릴리스 노트참조하세요.

다음 표는 레거시 API와 현재 API 간의 클래스 및 메서드 이름에 대한 대부분의 변경 사항을 보여줍니다.

앞의 항목 외에도 다음과 같은 변경 사항을 고려합니다.

  • 현재 API는 오버로드된 메서드 대신 Options 클래스와 메서드 체인을 사용합니다.

  • 현재 API는 드라이버 버전 4.0 이상에서 기본적으로 완화된 JSON 형식을 사용합니다. 애플리케이션이 엄격한 JSON 형식을 사용하는 경우 데이터를 읽거나 쓸 때 엄격(strict) 모드를 사용합니다. 문서 데이터 형식: 확장 JSON 가이드를 참조해 현재 API에서 JSON 형식을 지정하는 방법을 알아보세요.

  • 현재 API에서 MongoCollection의 기본 제네릭 유형은 org.bson.Document입니다. 마이그레이션이 쉬운 경우 BasicDBObject를 유형 매개변수로 지정할 수 있습니다.

  • 현재 API에서는 aggregate() 메서드에 전달하는 집계 파이프라인이 Bson 인터페이스를 확장하는 객체 목록을 허용합니다. 레거시 API에서는 DBObject 인터페이스를 확장하는 객체 목록을 허용합니다.

    메서드 서명도 API마다 다릅니다. 자세한 내용은 다음 API 문서를 참조하세요.

이 섹션에서는 레거시 API 에 대해 발생할 수 있는 질문에 대한 답변을 제공합니다.

다음 문서 만 포함된 컬렉션 에 연결한다고 가정해 보겠습니다.

{"_id": 1, "val": 1}

다음 예시 레거시 API 와 현재 API 사용하여 이 MongoDB 컬렉션 에 연결하는 방법을 보여줍니다.

MongoClient client = new MongoClient(URI);
DB db = client.getDB(DATABASE);
DBCollection col = db.getCollection(COLLECTION);
// Retrieves one document in the collection and prints it
DBObject doc = col.find().one();
System.out.println(doc.toString());
MongoClient client = MongoClients.create(URI);
MongoDatabase db = client.getDatabase(DATABASE);
MongoCollection<Document> col = db.getCollection(COLLECTION);
// Prints the first document retrieved from the collection as JSON
Document doc = col.find().first();
System.out.println(doc.toJson());

앞의 코드 스니펫의 출력은 다음과 유사합니다.

{"_id": 1, "val": 1}

앞의 예제에서 사용된 레거시 클래스 및 메서드에 대한 자세한 내용은 다음 API 문서 페이지를 참조하세요.

레거시 API와 현재 API 간의 차이점 목록은 Migrate from the Legacy API(레거시 API 에서 마이그레이션) 페이지를 참조하세요.

다음 예시 레거시 MongoClientOptions 및 MongoClientURI 클래스를 사용하여 쓰기 고려 (write concern) 설정하다 방법을 보여 줍니다.

MongoClientURI mongoURI = new MongoClientURI(URI,
MongoClientOptions.builder()
.writeConcern(WriteConcern.W1));
MongoClient client = new MongoClient(mongoURI);
MongoClientSettings options = MongoClientSettings.builder()
.applyConnectionString(new ConnectionString(URI))
.writeConcern(WriteConcern.W1).build();
MongoClient client = MongoClients.create(options);

앞의 예시 에 사용된 레거시 클래스 및 메서드에 대한 자세한 내용은 다음 API 설명서를 참조하세요.

레거시 API와 현재 API 간의 차이점 목록은 Migrate from the Legacy API(레거시 API 에서 마이그레이션) 페이지를 참조하세요.