Node.js - MongoDB 데이터 삽입

안녕하세요, 야심 찬 프로그래머 여러분! 오늘 우리는 Node.js와 MongoDB의 세계로 흥미로운 여정을 떠납니다. 구체적으로, 우리는 Node.js를 사용하여 MongoDB에 데이터를 삽입하는 방법을 탐구할 것입니다. 초보자라면 걱정하지 마세요 - 나는 할머니가 손자에게 처음으로 쿠키를 만드는 것을 가르치는 것처럼 인내심을 가지고 단계별로 안내해 드리겠습니다.

Node.js - MongoDB Insert

MongoDB는 무엇인가요?

데이터 삽입의 구체적인 내용에 들어가기 전에 MongoDB가 무엇인지 이해해 보겠습니다. 거대한 디지털 파일 캐비닛을 상상해 보세요. 여기서 다양한 정보를 저장할 수 있습니다. MongoDB는 바로 그런 것이며 - 데이터를 유연한 JSON과 유사한 형식인 BSON(Binary JSON)으로 저장하는 데이터베이스입니다.

환경 설정

우선, 우리는 컴퓨터에 Node.js와 MongoDB가 설치되어 있는지 확인해야 합니다. 아직 이를 수행하지 않았다면, 오븐이나 원료 없이 빵을 굽는 것과 같습니다! 공식 Node.js와 MongoDB 웹사이트로 이동하여 다운로드하고 설치하세요.

설치가 완료되면, Node.js용 MongoDB 드라이버를 설치해야 합니다. 터미널을 엽니다 (무서워하지 마세요, 이것은 컴퓨터와의 텍스트 기반 소통 방법입니다) 그런 다음 다음과 같은 명령어를 입력하세요:

npm install mongodb

이 명령어는 컴퓨터에게 MongoDB 패키지를 가게에서 사오게 하는 것과 같습니다.

MongoDB에 연결

데이터를 삽입하기 전에 MongoDB 데이터베이스에 연결을 설정해야 합니다. 다음과 같이 합니다:

const MongoClient = require('mongodb').MongoClient;
const url = "mongodb://localhost:27017/mydb";

MongoClient.connect(url, function(err, db) {
if (err) throw err;
console.log("데이터베이스가 생성되었습니다!");
db.close();
});

이를 단계별로 설명하자면:

  1. MongoDB 모듈을 임포트합니다.
  2. MongoDB 서버가 실행 중인 URL을 지정합니다.
  3. connect 메서드를 사용하여 연결을 설정합니다.
  4. 오류가 발생하면 던집니다 (나쁜 사과를 버리는 것처럼).
  5. 연결이 성공하면 메시지를 로그합니다.
  6. 마지막으로 데이터베이스 연결을 닫습니다.

MongoDB에 데이터 삽입

이제 연결이 설정되었으므로, MongoDB에 데이터를 삽입하는 두 가지 주요 메서드인 insertOne()insertMany()를 살펴보겠습니다.

insertOne() 메서드

insertOne() 메서드는 단일 책을 책장에 조심스럽게 두는 것과 같습니다. 이 메서드는 단일 문서를 컬렉션에 삽입할 수 있게 해줍니다. 다음은 그 작동 방식입니다:

const MongoClient = require('mongodb').MongoClient;
const url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
if (err) throw err;
const dbo = db.db("mydb");
const myobj = { name: "John Doe", address: "Highway 37" };
dbo.collection("customers").insertOne(myobj, function(err, res) {
if (err) throw err;
console.log("1 document inserted");
db.close();
});
});

이 코드를 해부해 보면:

  1. 데이터베이스에 연결합니다.
  2. 삽입할 데이터를 포함하는 myobj 객체를 생성합니다.
  3. dbo.collection("customers").insertOne()를 사용하여 객체를 "customers" 컬렉션에 삽입합니다.
  4. 성공하면 메시지를 로그하고 연결을 닫습니다.

insertMany() 메서드

이제 여러 책을 한 번에 책장에 추가하고 싶다면? 그때 insertMany() 메서드가 유용합니다. 이 메서드는 여러 문서를 동시에 삽입할 수 있게 해줍니다:

const MongoClient = require('mongodb').MongoClient;
const url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
if (err) throw err;
const dbo = db.db("mydb");
const myobj = [
{ name: 'John', address: 'Highway 71'},
{ name: 'Peter', address: 'Lowstreet 4'},
{ name: 'Amy', address: 'Apple st 652'}
];
dbo.collection("customers").insertMany(myobj, function(err, res) {
if (err) throw err;
console.log("Number of documents inserted: " + res.insertedCount);
db.close();
});
});

이를 단계별로 설명하자면:

  1. 삽입할 데이터를 포함하는 객체의 배열을 생성합니다.
  2. dbo.collection("customers").insertMany()를 사용하여 모든 객체를 동시에 삽입합니다.
  3. 삽입된 문서의 수를 res.insertedCount를 사용하여 로그합니다.

insertOne()과 insertMany() 비교

이 두 메서드의 차이를 더 잘 이해하기 위해 비교 표를 살펴보겠습니다:

특성 insertOne() insertMany()
문서 수 단일 문서 삽입 여러 문서 삽입
입력 단일 객체 객체 배열
반환 값 단일 InsertOneResult 객체 InsertManyResult 객체
성능 여러 문서 삽입 시 더 느림 여러 문서 삽입 시 더 빠름
사용 사례 단일 문서 삽입 필요 시 여러 문서 동시 삽입 필요 시

결론

이제 우리는 Node.js를 사용하여 MongoDB에 데이터를 삽입하는 방법을 성공적으로 탐구했습니다. insertOne()은 단일 책을 조심스럽게 책장에 두는 것과 같다면, insertMany()는 한 번에 책장을 채우는 것과 같습니다.

실습이 완벽을 이루는 길입니다. 이 메서드들을 실험해 보세요. 다양한 데이터를 삽입해 보거나, insertMany()를 사용하여 얼마나 많은 문서를 삽입할 수 있는지 시도해 보세요. 누가 다음 큰 데이터베이스 주도 애플리케이션을 만들까요!

기억하세요, 모든 전문가는 초보자였습니다. 계속 코딩하고, 학습하고, 가장 중요한 것은 즐겁게 만들어 나가세요! 다음에 다시 만날 때까지, 즐겁게 코딩하세요!

Credits: Image by storyset