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

MongoDB에서 문서 대량 삽입(Bulk Insert)하는 방법

MongoDB 대량 삽입이란?

MongoDB에서 여러 개의 문서를 한 번에 삽입해야 할 때는 대량 삽입(Bulk Insert) 기능을 활용하면 됩니다. 대량 연산은 개별적으로 쿼리를 실행하는 것보다 네트워크 왕복 횟수를 줄여 성능 면에서 큰 이점을 제공합니다.

대량 삽입을 수행하려면 먼저 initializeUnorderedBulkOp() 메서드를 사용하여 대량 연산 객체를 생성한 뒤, 각 문서를 추가하고 마지막에 execute()로 실행하면 됩니다.

대량 삽입 예제

다음은 demo255 컬렉션에 세 개의 문서를 대량으로 삽입하는 예제입니다.

> var manyDocument = db.demo255.initializeUnorderedBulkOp();
> manyDocument.insert( { "Name":"Chris", Age:24 } );
> manyDocument.insert( { "Name":"Bob", Age:22 } );
> manyDocument.insert( { "Name":"David", Age:23 } );
> manyDocument.execute();

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

BulkWriteResult({
"writeErrors" : [ ],
"writeConcernErrors" : [ ],
"nInserted" : 3,
"nUpserted" : 0,
"nMatched" : 0,
"nModified" : 0,
"nRemoved" : 0,
"upserted" : [ ]
})

결과에서 확인할 수 있듯이 nInserted 값이 3으로 표시되며, 이는 세 개의 문서가 성공적으로 삽입되었음을 의미합니다. 오류가 발생하지 않았으므로 writeErrorswriteConcernErrors는 비어 있습니다.

삽입된 문서 확인하기

find() 메서드를 사용하면 컬렉션에 저장된 모든 문서를 조회할 수 있습니다.

> db.demo255.find();

위 명령을 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.

{ "_id" : ObjectId("5e47a25e1627c0c63e7dba82"), "Name" : "Chris", "Age" : 24 }
{ "_id" : ObjectId("5e47a25e1627c0c63e7dba83"), "Name" : "Bob", "Age" : 22 }
{ "_id" : ObjectId("5e47a25e1627c0c63e7dba84"), "Name" : "David", "Age" : 23 }

정리

MongoDB에서 대량 삽입은 initializeUnorderedBulkOp()로 대량 연산 객체를 만들고, insert()로 문서를 추가한 후 execute()로 실행하는 순서로 진행됩니다. 순서가 중요하지 않은 경우에는 비순차(unordered) 방식을 사용하고, 작업 순서가 중요하다면 initializeOrderedBulkOp()를 사용하면 됩니다. 대량 연산을 활용하면 수천 건의 데이터도 효율적으로 처리할 수 있습니다.