백엔드(Backend)/데이터베이스

[MongoDB] 데이터 대량 삽입하기

jjinny_0609 2023. 11. 28. 23:11
728x90

안녕하세요, 여러분! 이번에는 Mongoose 섹션에서의 핵심 주제인 "대량 삽입하기"에 대해 알아보겠습니다.

 

많은 영화를 한 번에 생성하는 방법입니다. 이는 데이터를 조회하고 업데이트하며 삭제하는 과정을 다루고 있습니다. 현재 데이터베이스에는 Amadeus라는 영화만 존재하는 것을 확인할 수 있습니다.

 

우선, 여러 영화를 한 번에 생성하는 방법을 살펴보겠습니다. Shell에서 db.movies.find를 통해 현재의 데이터를 확인해보면 하나의 영화만 존재하는 것을 확인할 수 있습니다. 이제 여러 영화를 생성해보겠습니다. 이미 몇 가지 영화 데이터를 준비해두었습니다.

 

insertMany 메서드를 사용하면 배열에 담긴 여러 문서를 한 번에 삽입할 수 있습니다. 예를 들어, db.movies.insertMany를 입력하여 여러 영화를 한 번에 추가할 수 있습니다.

Movie.insertMany([
  { title: "Amelie", releaseYear: 2022, rating: 8.3, grade: "R" },
  { title: "Alien", releaseYear: 1979, rating: 8.3, grade: "R" },
  { title: "The Iron Giant", releaseYear: 1999, rating: 8.3, grade: "PG" },
  { title: "Stand By Me", releaseYear: 1986, rating: 8.3, grade: "R" },
  { title: "Moonrise Kingdom", releaseYear: 2012, rating: 8.3, grade: "PG-13" },
])
  .then(data=> {
    console.log("IT WORKED!")
    console.log(data);
  })

 

node index.js 실행
mongosh에서 확인한 결과

 

이 방법은 일반적으로 웹 애플리케이션에서는 사용되지 않습니다. 대부분의 경우 웹 애플리케이션에서는 하나의 모델을 생성하고 저장하는 경우가 더 흔합니다.

 

Mongoose의 insertMany 메서드는 MongoDB의 insertMany와 유사하지만, 여기서는 JavaScript 객체를 사용하므로 모델 이름의 첫 문자는 대문자여야 합니다.

 

insertMany 메서드는 Promise를 반환하며, 유효성 검사를 통과한 문서를 반환합니다. 따라서 별도로 save를 호출하지 않아도 됩니다. 다음 시간에는 이어서 데이터를 찾는 작업에 대해 다룰 예정입니다.

 

이상으로 "대량 삽입하기"에 대한 내용을 정리해보았습니다. 계속해서 관련된 내용을 함께 알아보겠습니다. 감사합니다!

728x90