Responsive Advertisement

Node.js에서 MongoDB 컬렉션 생성하기: Create Collection 가이드

MongoDB는 유연한 스키마 구조 덕분에 데이터베이스와 컬렉션을 매우 쉽게 생성하고 관리할 수 있습니다. 특히, 컬렉션은 MongoDB에서 데이터를 저장하는 기본 단위로, 각 컬렉션에는 문서(Document)들이 JSON 형식으로 저장됩니다. 이번 글에서는 Node.jsMongoDB를 연동하여 새로운 컬렉션을 생성하고 데이터를 삽입하는 방법을 설명하겠습니다.

MongoDB와 Node.js 연동하기

MongoDB와 Node.js를 연동하기 위해서는 MongoDB와 통신할 수 있는 mongodb 패키지를 설치해야 합니다. 이 패키지를 사용하면 데이터베이스와 컬렉션을 쉽게 관리할 수 있습니다.

1. MongoDB 설치 및 클라이언트 설정

MongoDB는 로컬 환경에 설치하거나, MongoDB Atlas 같은 클라우드 서비스를 통해 사용할 수 있습니다. 로컬에서 MongoDB 서버를 실행 중이라면, 다음 단계를 진행하면 됩니다.

2. Node.js 프로젝트 설정

MongoDB와 Node.js를 연동하기 위해, 먼저 Node.js 프로젝트를 초기화하고 필요한 패키지를 설치해야 합니다.

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

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

3. MongoDB 연결 설정

이제 Node.js와 MongoDB를 연결해봅시다. 아래 코드는 MongoDB 서버에 연결하는 기본적인 코드입니다.

// app.js

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

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

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

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();

위 코드에서는 MongoClient를 사용해 MongoDB 서버에 연결하고, db() 메서드를 사용해 데이터베이스를 선택하는 과정을 보여줍니다.

MongoDB에서 컬렉션 생성하기

MongoDB는 데이터를 삽입할 때 자동으로 컬렉션을 생성하지만, 필요에 따라 명시적으로 컬렉션을 생성할 수 있습니다. 여기서는 users라는 새로운 컬렉션을 생성하고 데이터를 삽입하는 방법을 설명하겠습니다.

1. 컬렉션 생성

컬렉션을 명시적으로 생성하려면 createCollection() 메서드를 사용할 수 있습니다.

// 컬렉션 생성 예시

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

        const db = client.db(dbName);

        // 새로운 컬렉션 생성
        await db.createCollection('users');
        console.log('컬렉션이 성공적으로 생성되었습니다.');
    } catch (error) {
        console.error('컬렉션 생성 중 오류 발생:', error);
    } finally {
        await client.close();
        console.log('MongoDB 연결이 종료되었습니다.');
    }
}

createCollection();

위 코드는 users라는 컬렉션을 생성합니다. MongoDB는 유연한 스키마를 사용하기 때문에 데이터 구조를 미리 정의하지 않고도 컬렉션을 생성할 수 있습니다.

2. 컬렉션에 데이터 삽입

컬렉션을 생성한 후, insertOne() 또는 insertMany() 메서드를 사용하여 데이터를 삽입할 수 있습니다. 다음 코드는 users 컬렉션에 새로운 사용자를 추가하는 예시입니다.

// 데이터 삽입 예시

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

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

        // 새로운 사용자 데이터 삽입
        const result = await collection.insertOne({ name: 'Alice', age: 25 });
        console.log('데이터 삽입 성공:', result.insertedId);
    } catch (error) {
        console.error('데이터 삽입 중 오류 발생:', error);
    } finally {
        await client.close();
        console.log('MongoDB 연결이 종료되었습니다.');
    }
}

insertData();

위 코드에서는 users 컬렉션에 Alice라는 사용자의 데이터를 삽입하는 예시입니다. insertOne() 메서드를 사용해 데이터를 저장할 수 있습니다.

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 컬렉션의 모든 데이터를 배열로 변환하여 출력하는 예시입니다.

컬렉션 삭제하기

필요하지 않은 컬렉션은 삭제할 수 있습니다. drop() 메서드를 사용하여 특정 컬렉션을 삭제하는 방법을 살펴보겠습니다.

// 컬렉션 삭제 예시

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

        const db = client.db(dbName);

        // 컬렉션 삭제
        await db.collection('users').drop();
        console.log('컬렉션이 성공적으로 삭제되었습니다.');
    } catch (error) {
        console.error('컬렉션 삭제 중 오류 발생:', error);
    } finally {
        await client.close();
        console.log('MongoDB 연결이 종료되었습니다.');
    }
}

dropCollection();

위 코드는 users 컬렉션을 삭제하는 예시입니다. 삭제된 컬렉션은 복구할 수 없으므로 신중하게 사용해야 합니다.

MongoDB 연결 종료

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

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

결론

이번 글에서는 Node.jsMongoDB를 연동하여 새로운 컬렉션을 생성하고, 데이터를 삽입 및 조회하는 방법을 살펴보았습니다. MongoDB는 매우 유연한 스키마 구조 덕분에 빠르게 데이터를 저장하고 관리할 수 있으며, 다양한 기능을 쉽게 구현할 수 있습니다. 이 가이드를 바탕으로 MongoDB 컬렉션을 생성하고 데이터를 효율적으로 관리하는 애플리케이션을 개발해보세요!

댓글 쓰기