MongoDB/MongoDB 기본 CRUD

[MongoDB 기본 CRUD] 4. insertOne()과 insertMany() 명령어 사용하여 데이터 생성(삽입)하기

Fletcher 2024. 8. 13. 11:53

 

반갑습니다!

 

이번 포스트에서는 insertOne()과 insertMany() 명령어를 사용하여

컬렉션에 데이터를 삽입해보겠습니다

 

여타 데이터베이스 시스템도 그러하듯이 MongoDB도 마찬가지로

기본적인 CRUD 명령어가 있는데요 ^^

 

C : Create

R : Read

U : Update

D : Delete

 

데이터 생성, 조회, 갱신(수정), 삭제와 같은 기본적인 처리를 의미합니다

 

이 중 데이터 생성(삽입)에 해당하는 insertOne()과 insertMany() 명령어에 대해

알아보도록 하겠습니다 ^^

 

MongoDB는 기본적인 데이터 단위가 도큐먼트(Document)입니다

해당 도큐먼트 내에 여러 필드와 그 필드에 대응되는 값을 지정하여

field:value의 쌍을 만들어 저장을 하죠 ^^

 

이 때 도큐먼트를 하나 삽입할 수도 있고, 여러개를 동시에 넣을 수도 있는데요

 

 

 

1. insertOne()

 

상기 캡쳐 이미지와 같이 db.[컬렉션이름].insertOne()의 구조로 사용하시면 되겠습니다

insertOne() 함수의 파라미터로 딕셔너리 형태의 데이터를 넣어주시면 되는데요

저는 예시에서, { name : "Fletcher", age : 999, job : "developer" }라는 데이터를 넣어주었습니다 ^^

 

해당 명령어 실행 결과 콘솔창에 acknowledged의 값이 true로,

그리고 새로운 ObjectId가 출력되는 것을 볼 수 있겠습니다 ^^

 

 

 

 

2. insertMany()

 

이번에는 도큐먼트를 하나가 아니라 여러개를 삽입해보겠습니다

insertMany() 명령어를 사용해주시고

파라미터로 여러 딕셔너리들을 넣어주시면 되겠는데요 ^^

저는 총 10개의 데이터를 넣어주었습니다

 

콘솔의 출력 결과를 보면 마찬가지로 acknowledged는 true로,

insertedIds에 10 fields가 출력되는 것을 통해

해당 작업이 정상적으로 수행되었음을 알 수 있겠습니다 ^^

 

 

만약에 insertOne() 명령어의 인자로 여러 데이터를 넣어주면 어떻게 될까요?

당연히 오류가 발생하며 해당 작업이 정상적으로 처리되지 않습니다 ^^

하지만 반대로 데이터를 하나만 넣어줄 경우에는 insertOne()을 사용하셔도 되고

insertMany()를 사용하셔도 무방합니다 ^^

 

 

삽입할 데이터의 갯수에 따라 insertOne()을 사용할 것인지,

insertMany()를 사용할 것인지 잘 선택해주시면 되겠습니다 ^^

 

 

 

오늘 내용에 대해 복습 

연습 문제를 하나 첨부하며 이번 포스트 마치도록 하겠습니다

하단의 데이터를 한 번에 컬렉션에 넣어보는 문제입니다 ^^

{ name:"David", age:45, address:"서울" }

{ name:"DaveLee", age:25, address:"경기도" }

{ name:"Andy", age:50, hobby:"골프", address:"경기도" }

{ name:"Kate", age:35, address:"수원시" }

{ name:"Brown", age:8 }