Responsive Advertisement

Node.js์—์„œ MongoDB ์ปฌ๋ ‰์…˜ ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ญ์ œํ•˜๊ธฐ: Drop ๊ฐ€์ด๋“œ

MongoDB์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ณผ์ •์—์„œ ํ•„์š”์— ๋”ฐ๋ผ ์ปฌ๋ ‰์…˜(Collection) ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(Database) ์ „์ฒด๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์‚ญ์ œ ์ž‘์—…์€ drop() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Node.js์™€ MongoDB๋ฅผ ์—ฐ๋™ํ•˜์—ฌ ์ปฌ๋ ‰์…˜๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹จ๊ณ„๋ณ„๋กœ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Node.js์™€ MongoDB ์—ฐ๋™ ์„ค์ •

MongoDB์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๊ธฐ ์ „์—, ๋จผ์ € Node.js์™€ MongoDB๋ฅผ ์—ฐ๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด mongodb ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ณ  MongoDB ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

1. MongoDB ์„ค์น˜ ๋ฐ ์„ค์ •

MongoDB๋Š” ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜, MongoDB Atlas์™€ ๊ฐ™์€ ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌ์— MongoDB ์„œ๋ฒ„๋ฅผ ์„ค์น˜ํ•œ ํ›„ ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ Node.js ํ”„๋กœ์ ํŠธ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ณ , mongodb ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

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

2. MongoDB ์—ฐ๊ฒฐ ์„ค์ •

๋‹ค์Œ์€ MongoDB ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ธฐ๋ณธ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. MongoClient ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ MongoDB์™€ Node.js๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์œ„ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด MongoDB ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ปฌ๋ ‰์…˜ ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ญ์ œํ•  ์ค€๋น„๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

MongoDB์—์„œ ์ปฌ๋ ‰์…˜ ์‚ญ์ œํ•˜๊ธฐ

MongoDB์—์„œ ํŠน์ • ์ปฌ๋ ‰์…˜์„ ์‚ญ์ œํ•˜๋ ค๋ฉด drop() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” ์„ ํƒํ•œ ์ปฌ๋ ‰์…˜์„ ์™„์ „ํžˆ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, users๋ผ๋Š” ์ปฌ๋ ‰์…˜์„ ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

1. ์ปฌ๋ ‰์…˜ ์‚ญ์ œ: drop() ๋ฉ”์„œ๋“œ

ํŠน์ • ์ปฌ๋ ‰์…˜์„ ์‚ญ์ œํ•  ๋•Œ, drop() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ์ปฌ๋ ‰์…˜์„ ์™„์ „ํžˆ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

// ์ปฌ๋ ‰์…˜ ์‚ญ์ œ ์˜ˆ์‹œ

async function dropCollection() {
    try {
        await client.connect();
        console.log('MongoDB์— ์„ฑ๊ณต์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.');

        const db = client.db(dbName);

        // 'users' ์ปฌ๋ ‰์…˜ ์‚ญ์ œ
        const result = await db.collection('users').drop();
        console.log('์ปฌ๋ ‰์…˜์ด ์„ฑ๊ณต์ ์œผ๋กœ ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค:', result);
    } catch (error) {
        console.error('์ปฌ๋ ‰์…˜ ์‚ญ์ œ ์ค‘ ์˜ค๋ฅ˜ ๋ฐœ์ƒ:', error);
    } finally {
        await client.close();
        console.log('MongoDB ์—ฐ๊ฒฐ์ด ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.');
    }
}

dropCollection();

์œ„ ์ฝ”๋“œ๋Š” users๋ผ๋Š” ์ปฌ๋ ‰์…˜์„ ์‚ญ์ œํ•˜๋Š” ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค. ์ปฌ๋ ‰์…˜์ด ์„ฑ๊ณต์ ์œผ๋กœ ์‚ญ์ œ๋˜๋ฉด, ์‚ญ์ œ ๊ฒฐ๊ณผ๊ฐ€ true๋กœ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

MongoDB์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ญ์ œํ•˜๊ธฐ

์ปฌ๋ ‰์…˜๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ „์ฒด๋ฅผ ์‚ญ์ œํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด dropDatabase() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” ์„ ํƒํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๊ทธ ์•ˆ์˜ ๋ชจ๋“  ์ปฌ๋ ‰์…˜์„ ์™„์ „ํžˆ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

1. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ญ์ œ: dropDatabase() ๋ฉ”์„œ๋“œ

๋‹ค์Œ์€ myDatabase๋ผ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ „์ฒด๋ฅผ ์‚ญ์ œํ•˜๋Š” ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

// ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ญ์ œ ์˜ˆ์‹œ

async function dropDatabase() {
    try {
        await client.connect();
        console.log('MongoDB์— ์„ฑ๊ณต์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.');

        const db = client.db(dbName);

        // ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ญ์ œ
        const result = await db.dropDatabase();
        console.log('๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค:', result);
    } catch (error) {
        console.error('๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ญ์ œ ์ค‘ ์˜ค๋ฅ˜ ๋ฐœ์ƒ:', error);
    } finally {
        await client.close();
        console.log('MongoDB ์—ฐ๊ฒฐ์ด ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.');
    }
}

dropDatabase();

์œ„ ์ฝ”๋“œ๋Š” myDatabase๋ผ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ญ์ œํ•˜๋Š” ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค. dropDatabase() ๋ฉ”์„œ๋“œ๋Š” ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ชจ๋“  ์ปฌ๋ ‰์…˜๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

์ปฌ๋ ‰์…˜๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ญ์ œ ์‹œ ์œ ์˜์‚ฌํ•ญ

์ปฌ๋ ‰์…˜์ด๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ญ์ œํ•  ๋•Œ๋Š” ์‹ ์ค‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‚ญ์ œ๋œ ๋ฐ์ดํ„ฐ๋Š” ๋ณต๊ตฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฉฐ, drop()๊ณผ dropDatabase() ๋ฉ”์„œ๋“œ๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์™„์ „ํžˆ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ ์ปฌ๋ ‰์…˜์„ ์‚ญ์ œํ•  ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ ๋ฐฑ์—…์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

MongoDB ์—ฐ๊ฒฐ ์ข…๋ฃŒ

๋ฐ์ดํ„ฐ ์‚ญ์ œ ์ž‘์—…์ด ๋๋‚˜๋ฉด MongoDB ์—ฐ๊ฒฐ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ข…๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. client.close() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

// MongoDB ์—ฐ๊ฒฐ ์ข…๋ฃŒ
await client.close();
console.log('MongoDB ์—ฐ๊ฒฐ์ด ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.');

๊ฒฐ๋ก 

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Node.js์™€ MongoDB๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปฌ๋ ‰์…˜๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. MongoDB์˜ drop() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ํŠน์ • ์ปฌ๋ ‰์…˜์„ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜, dropDatabase() ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ „์ฒด๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์‚ญ์ œ ์ž‘์—…์€ ๋ณต๊ตฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์‹ ์ค‘ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋ฉฐ, ํ•„์š”ํ•  ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฑ์—…ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ€์ด๋“œ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ MongoDB์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜์„ธ์š”!

๋Œ“๊ธ€ ์“ฐ๊ธฐ