Responsive Advertisement

Node.js에서 MongoDB 데이터베이스 생성하기: Create Database 가이드

MongoDB는 유연한 데이터베이스 구조와 높은 확장성 덕분에 많은 개발자들에게 사랑받는 NoSQL 데이터베이스입니다. MongoDB를 활용한 애플리케이션을 개발하기 위해서는 먼저 데이터베이스를 생성하고 관리하는 방법을 알아야 합니다. 이번 글에서는 Node.jsMongoDB를 연동하여 새로운 데이터베이스를 생성하고 사용하는 방법을 설명하겠습니다.

MongoDB와 Node.js 연동 설정

MongoDB와 Node.js를 연동하기 위해서는 먼저 mongodb 패키지를 설치해야 합니다. MongoDB는 설치한 후 바로 사용할 수 있고, 데이터베이스는 데이터를 저장할 때 자동으로 생성되기 때문에 초기 설정이 간단합니다.

1. MongoDB 설치

MongoDB를 사용하려면 로컬 환경이나 클라우드 환경에서 MongoDB 서버를 설정해야 합니다. 로컬 환경에서는 MongoDB를 직접 설치할 수 있으며, 클라우드에서는 MongoDB Atlas와 같은 서비스를 이용할 수 있습니다.

2. Node.js 프로젝트 설정

MongoDB를 사용하기 위해 Node.js 프로젝트를 생성하고, 필요한 패키지를 설치합니다.

$ mkdir myapp
$ cd myapp
$ npm init -y
$ npm install mongodb

위 명령어는 Node.js 프로젝트를 초기화하고 MongoDB와 통신할 수 있는 mongodb 패키지를 설치합니다.

MongoDB 데이터베이스 생성하기

MongoDB에서 데이터베이스는 데이터를 삽입할 때 자동으로 생성됩니다. 하지만 Node.js 코드에서 데이터베이스를 생성하고 사용할 수 있습니다. 먼저, MongoDB에 연결한 후 데이터베이스를 생성해보겠습니다.

1. MongoDB 연결

Node.js에서 MongoDB에 연결하려면 MongoClient 객체를 사용해야 합니다. MongoDB 서버와 연결하는 기본 코드는 아래와 같습니다.

// app.js

const { MongoClient } = require('mongodb');

// MongoDB 연결 URL
const url = 'mongodb://localhost:27017'; // 로컬 MongoDB URL
const client = new MongoClient(url);

// 생성할 데이터베이스 이름
const dbName = 'myNewDatabase';

async function main() {
    try {
        // MongoDB 연결
        await client.connect();
        console.log('MongoDB에 성공적으로 연결되었습니다.');

        // 데이터베이스 선택 (자동으로 생성됨)
        const db = client.db(dbName);
        console.log(`데이터베이스 ${dbName}가 선택되었습니다.`);
    } catch (error) {
        console.error('MongoDB 연결 중 오류 발생:', error);
    } finally {
        // MongoDB 연결 종료
        await client.close();
        console.log('MongoDB 연결이 종료되었습니다.');
    }
}

main();

위 코드에서 client.db(dbName) 메서드를 사용해 데이터베이스를 선택하거나 생성할 수 있습니다. MongoDB는 데이터가 삽입될 때 자동으로 데이터베이스를 생성합니다.

컬렉션 생성하기

MongoDB의 데이터는 컬렉션에 저장됩니다. db.collection() 메서드를 사용해 새로운 컬렉션을 생성할 수 있습니다. 다음 코드는 users라는 컬렉션을 생성하는 예시입니다.

// 컬렉션 생성 및 데이터 삽입

async function createCollection() {
    try {
        await client.connect();
        console.log('MongoDB에 성공적으로 연결되었습니다.');

        const db = client.db(dbName);
        const collection = db.collection('users');
        console.log('컬렉션이 성공적으로 생성되었습니다.');

        // 샘플 데이터 삽입
        const result = await collection.insertOne({ name: 'John Doe', age: 30 });
        console.log('데이터 삽입 성공:', result.insertedId);
    } catch (error) {
        console.error('컬렉션 생성 중 오류 발생:', error);
    } finally {
        await client.close();
        console.log('MongoDB 연결이 종료되었습니다.');
    }
}

createCollection();

위 코드에서 users라는 컬렉션을 생성하고, 샘플 데이터를 삽입하는 예시를 볼 수 있습니다. MongoDB는 데이터를 처음 삽입할 때 컬렉션을 자동으로 생성합니다.

MongoDB에서 데이터 조회하기

생성된 데이터베이스와 컬렉션에서 데이터를 조회하는 방법은 find() 메서드를 사용하는 것입니다. 다음은 users 컬렉션의 모든 데이터를 조회하는 예시입니다.

// 데이터 조회 예시

async function findData() {
    try {
        await client.connect();
        console.log('MongoDB에 성공적으로 연결되었습니다.');

        const db = client.db(dbName);
        const collection = db.collection('users');

        // 데이터 조회
        const users = await collection.find({}).toArray();
        console.log('조회된 사용자:', users);
    } catch (error) {
        console.error('데이터 조회 중 오류 발생:', error);
    } finally {
        await client.close();
        console.log('MongoDB 연결이 종료되었습니다.');
    }
}

findData();

위 코드에서는 find() 메서드를 사용하여 users 컬렉션의 모든 데이터를 배열 형식으로 조회합니다.

MongoDB에서 데이터 삭제하기

필요하지 않은 데이터베이스나 컬렉션은 삭제할 수 있습니다. 다음은 특정 데이터베이스를 삭제하는 방법입니다.

// 데이터베이스 삭제 예시

async function dropDatabase() {
    try {
        await client.connect();
        console.log('MongoDB에 성공적으로 연결되었습니다.');

        const db = client.db(dbName);

        // 데이터베이스 삭제
        await db.dropDatabase();
        console.log(`데이터베이스 ${dbName}가 삭제되었습니다.`);
    } catch (error) {
        console.error('데이터베이스 삭제 중 오류 발생:', error);
    } finally {
        await client.close();
        console.log('MongoDB 연결이 종료되었습니다.');
    }
}

dropDatabase();

위 코드는 dropDatabase() 메서드를 사용하여 MongoDB 데이터베이스를 삭제하는 예시입니다. 삭제된 데이터베이스는 복구할 수 없으므로 주의해야 합니다.

MongoDB 연결 종료

모든 작업이 끝난 후에는 MongoDB 연결을 안전하게 종료해야 합니다. client.close() 메서드를 사용해 연결을 종료할 수 있습니다.

// MongoDB 연결 종료
await client.close();
console.log('MongoDB 연결이 종료되었습니다.');

결론

Node.js에서 MongoDB를 사용하여 데이터베이스를 생성하고 관리하는 방법을 살펴보았습니다. MongoDB는 유연한 스키마 덕분에 데이터를 저장할 때 자동으로 데이터베이스와 컬렉션을 생성해주므로, 매우 직관적으로 사용할 수 있습니다. 이 가이드를 바탕으로 MongoDB와 Node.js를 연동해 강력한 데이터베이스 애플리케이션을 개발해보세요!

댓글 쓰기