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() 메서드를 활용하면 반복 작업 없이 여러 문서를 한 번의 호출로 효율적으로 저장할 수 있습니다.