all is well!!

5. mongoose ๋ณธ๋ฌธ

Node.js(express.js) + noSQL(mongoDB)

5. mongoose

tnqlscho 95 2023. 6. 6. 23:42

๐Ÿ‘€  mongoose?

๊ณต์‹ mongoDB ๋“œ๋ผ์ด๋ฒ„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์„œ๋“œ ํŒŒํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

 

๐ŸŸฃ mongoose์˜ ํŠน์ง•

  1. mongoDB์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ค€๋‹ค.
  2. ์Šคํ‚ค๋งˆ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. (์Šคํ‚ค๋งˆ๋ž€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๋ ค๋Š” ๋ฌธ์„œ์˜ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š”๊ฒƒ.)
  3. mongoose๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
  4. ์ผ์ •ํ•œ ํ˜•์‹์ด๋‚˜ ํ‹€์„ ๊ฐ–์ถ˜ ์ •ํ˜•ํ™”๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ• ๋•Œ ์Šคํ‚ค๋งˆ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๋Š”๊ฒŒ ํ›จ์”ฌ ๊ฐ„๋‹จํ•ด์„œ ์ข‹๋‹ค.

 

๐ŸŸฃ ๊ณต์‹ mongoDB ๋“œ๋ผ์ด๋ฒ„์™€ ๋‹ค๋ฅธ ์ 

const getUser = async (req, res, next) => {
    const client = new MongoClient(url);

    let users;

    try{
        // ์„œ๋ฒ„ ์—ฐ๊ฒฐ
        await client.connect();
        const db = client.db();
        // collection์„ ๊ฒ€์ƒ‰ํ•ด์„œ ๊ฐ€์ ธ์˜ค๋Š”๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด์ˆ˜๋„ ์žˆ์œผ๋‹ˆ๊นŒ ๋น„๋™๊ธฐ
        // find() ๋ฉ”์†Œ๋“œ๋Š” ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฉ”์†Œ๋“œ
        // toArray() ๋ฉ”์†Œ๋“œ๋Š” ๋ฐฐ์—ดํ˜•ํƒœ๋กœ ๋ฌธ์„œ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฒŒ ํ•œ๋‹ค.
        users = await db.collection('users').find().toArray();
    }
    catch{

    }
    client.close();
    res.json(users);
};

mongoDB๋•Œ๋Š” ์ƒˆ๋กœ์šด ์ปฌ๋ ‰์…˜์„ ์ƒ์„ฑํ•  ๋•Œ๋งˆ๋‹ค MongoClient๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  connet()๋ฉ”์†Œ๋“œ๋กœ ์—ฐ๊ฒฐ์„ ํ•ด์•ผํ–ˆ๊ณ  close() ๋ฉ”์†Œ๋“œ๋ฅผ ์จ์„œ ์—ฐ๊ฒฐ ์ข…๋ฃŒ๊นŒ์ง€ ์„ค์ •ํ•ด์ค˜์•ผ ํ–ˆ์–ด์„œ ์ข€ ๋ฒˆ๊ฑฐ๋กœ์šด ํŽธ์ด๋‹ค.

 

const getUser = async (req, res, next) => {
    let getUsers;

    try {
        getUsers = await UserModel.find().exec() // exec() : promiss๋กœ ๋ฐ˜ํ™˜ํ•˜๊ธฐ์œ„ํ•ด ์“ด๋‹ค.
    }
    catch (err) {
        console.log(err);
        return next(err); // ์˜ค๋ฅ˜๊ฐ€ ์ƒ๊ฒผ์„๋•Œ ์ฝ”๋“œ ์‹คํ–‰ ์ค‘๋‹จ.
    }

    res.json(getUsers);
}

1. Mongoose๋Š” connect() ๋ฉ”์†Œ๋“œ ํ•˜๋‚˜๋งŒ ํ•„์š”ํ•˜๋‹ค.

2. connect()์— ์ „๋‹ฌํ•˜๋ฉด ๋ฐฑ์—”๋“œ์™€ mongoDB ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์ด์˜ ๋ชจ๋“  ์—ฐ๊ฒฐ์„ ๊ด€๋ฆฌํ•ด์ค€๋‹ค. ๊ทธ๋ž˜์„œ ์ปฌ๋ ‰์…˜ ๋งŒ๋“ค๋•Œ๋งˆ๋‹ค ์ผ์ผํžˆ ํ•จ์ˆ˜์•ˆ์— connect()์™€ close() ๋ฉ”์†Œ๋“œ๋ฅผ ๋„ฃ์„ ํ•„์š”๊ฐ€ ์—†๋‹ค.

3. mongoose๊ฐ€ ์ปค๋„ฅ์…˜ ํ’€์„ ์‚ฌ์šฉํ•ด์„œ ์—ฐ๊ฒฐ์„ ์—ด๊ณ ๋‹ซ๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋ฐฑ์—”๋“œ๊ฐ€ ํ•ญ์ƒ ํšจ์œจ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜๋„๋ก ํ•ด์ค€๋‹ค.

4. mongoDB๋กœ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ปฌ๋ ‰์…˜์„ ์ฐธ์กฐํ•ด์„œ ๋‹จ์ผ ๋ฌธ์„œ๋ฅผ insertOne()์œผ๋กœ mongoDB์— ์ถ”๊ฐ€ํ•˜๊ณ  ๋‹ค๋ฅธ ๋‚ด์šฉ๋„ ์ถ”๊ฐ€ํ–ˆ์–ด์•ผ ํ•˜๋Š”๋ฐ, Mongoose์—๋Š” ์ƒ์ˆ˜๋งŒ ์ƒ์„ฑํ•˜๋ฉด ๋œ๋‹ค.

 

 

 

 

 


* ์ฐธ๊ณ 

https://nodejs.dev/en/learn/

https://www.udemy.com/course/react-nodejs-express-mongodb-mern/learn/lecture/33745704#overview

'Node.js(express.js) + noSQL(mongoDB)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

4. SQL? noSQL?  (0) 2023.05.29
3. mongoDB Atlas ์„ค์ •  (0) 2023.05.27
2. Express.js  (0) 2023.05.25
1. Node.js  (0) 2023.05.24
Comments