Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java로 MongoDB 컬렉션에 여러 문서를 한 번에 삽입하는 방법

MongoDB에서는 insertMany() 메서드를 사용하여 기존 컬렉션에 여러 개의 문서(document)를 한 번에 삽입할 수 있습니다. 이 메서드는 문서 배열을 인자로 받아 일괄 처리하므로, 대량의 데이터를 효율적으로 저장할 때 유용합니다.

기본 문법

db.coll.insert(docArray)

각 구성 요소의 의미는 다음과 같습니다.

  • db : 사용 중인 데이터베이스

  • coll : 문서를 삽입할 컬렉션 이름

  • docArray : 삽입하려는 문서들의 배열

셸에서 실행하는 예제

> use myDatabase()
switched to db myDatabase()
> db.createCollection(sample)
{ "ok" : 1 }
> db.test.insert([{name:"Ram", age:26, city:"Mumbai"}, {name:"Roja", age:28,
city:"Hyderabad"}, {name:"Ramani", age:35, city:"Delhi"}])
BulkWriteResult({
    "writeErrors" : [ ],
    "writeConcernErrors" : [ ],
    "nInserted" : 3,
    "nUpserted" : 0,
    "nMatched" : 0,
    "nModified" : 0,
    "nRemoved" : 0,
    "upserted" : [ ]
})

실행 결과 nInserted : 3으로 표시되며, 세 개의 문서가 성공적으로 삽입되었음을 확인할 수 있습니다.

Java 프로그램으로 구현하기

Java에서는 com.mongodb.client.MongoCollection 인터페이스의 insertMany() 메서드를 사용하여 여러 문서를 컬렉션에 삽입할 수 있습니다. 이 메서드는 삽입하려는 문서들을 담고 있는 List 객체를 매개변수로 전달받습니다.

Java 프로그램으로 MongoDB에 문서를 삽입하려면 다음 단계를 따릅니다.

  • 시스템에 MongoDB가 설치되어 있는지 확인합니다.

  • Java 프로젝트의 pom.xml 파일에 MongoDB 드라이버 의존성을 추가합니다.

<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongo-java-driver</artifactId>
    <version>3.12.2</version>
</dependency>

이후 다음 순서대로 코드를 작성합니다.

  • MongoClient 클래스를 인스턴스화하여 MongoDB 클라이언트를 생성합니다.

  • getDatabase() 메서드를 사용해 데이터베이스에 연결합니다.

  • 삽입할 문서(Document) 객체들을 준비합니다.

  • getCollection() 메서드를 사용해 문서를 삽입할 컬렉션 객체를 가져옵니다.

  • 생성한 모든 문서를 담는 List 객체를 만듭니다.

  • List 객체를 매개변수로 전달하며 insertMany() 메서드를 호출합니다.

전체 예제 코드

import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import java.util.ArrayList;
import java.util.List;
import org.bson.Document;
import com.mongodb.MongoClient;
public class InsertingMultipleDocuments {
    public static void main( String args[] ) {
        // MongoDB 클라이언트 생성
        MongoClient mongo = new MongoClient( "localhost" , 27017 );
        // 데이터베이스 연결
        MongoDatabase database = mongo.getDatabase("myDatabase");
        // 컬렉션 객체 생성
        MongoCollection<Document> collection =
        database.getCollection("sampleCollection");
        Document document1 = new Document("name", "Ram").append("age", 26).append("city", "Hyderabad");
        Document document2 = new Document("name", "Robert").append("age", 27).append("city", "Vishakhapatnam");
        Document document3 = new Document("name", "Rhim").append("age", 30).append("city", "Delhi");
        // 생성한 문서들을 리스트에 추가 후 삽입
        List<Document> list = new ArrayList<Document>();
        list.add(document1);
        list.add(document2);
        list.add(document3);
        collection.insertMany(list);
        System.out.println("Documents Inserted");
    }
}

실행 결과

Documents Inserted

프로그램을 실행하면 위와 같은 출력 결과와 함께 세 개의 문서가 sampleCollection 컬렉션에 정상적으로 삽입됩니다. 이처럼 insertMany() 메서드를 활용하면 반복 작업 없이 여러 문서를 한 번의 호출로 효율적으로 저장할 수 있습니다.