์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ๋ ธ๋ง๋์ฝ๋
- JS
- javascript
- ํ ์ดํ๋ก์ ํธ
- ํ์ด์ฌ
- ํ๋ก์ ํธ
- ๊ทธ๋ฆฌ๋
- ๋ฐฑ์ค
- ํ๋ก ํธ์๋
- ๋ชจ๊ฐ์ฝ
- ์ฝ๋ฉํ ์คํธ
- CSS
- react
- KDT
- ์๊ณ ๋ฆฌ์ฆ
- ํฌ๋กค๋ง
- heapq
- Python
- ํ๋ก๊ทธ๋๋จธ์ค
- fe
- ์ฝ๋ฉ
- node.js
- Til
- ์ฝ๋ฉ์ ํ
- HTML
- mongodb
- ๊ตญ๋น์ง์
- error
- ๊ฐ๋ฐ
- ๋๋ฆผ์ฝ๋ฉ
- Today
- Total
๐ฑ → ๐ณ
[MongoDB] mongoDB(์ ์, ๊ตฌ์กฐ, ํจํค์ง ์ค์น ๋ฐ ์ฌ์ฉ ๋ฐฉ๋ฒ) ๋ณธ๋ฌธ
[MongoDB] mongoDB(์ ์, ๊ตฌ์กฐ, ํจํค์ง ์ค์น ๋ฐ ์ฌ์ฉ ๋ฐฉ๋ฒ)
BAY 2022. 9. 24. 11:40๐ MongoDB(Humongous DB)
์ฅ์
- data๋ฅผ ์ต์ํ JSON ํํ๋ก ์ฒ๋ฆฌ -> ๋น ๋ฅด๊ฒ JSON ์ ํ ๊ฐ๋ฅ
- DB ๊ตฌ์กฐ์ ๋ณ๊ฒฝ ์ฉ์ด
- ์ ์ฝ์ด ์์ -> ๋์ ์ํ ํ์ฅ์ฑ, ์คํค๋ง ์ค๊ณ์ ์ ์ฐ์ฑ
๋จ์
- ํ์ค์ด ์์(= ์ ์ฝ์ด ์์)
- ๋ฐ์ดํฐ๊ฐ ๊ตฌ์กฐํ ๋์ด์์ง ์์
- ๋จ์ํ ๊ตฌ์กฐ์ ์ฟผ๋ฆฌ๋ง ์ฌ์ฉ ๊ฐ๋ฅ
- ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ ๋ฐ ์์ ์ฑ์ DB๊ฐ ์๋ APP ๋ ๋ฒจ์์ ๊ด๋ฆฌํด์ค์ผ ํจ -> ๋ฒ๊ทธ ๋ฐ์ ํ๋ฅ ๋์
โ MongoDB์ ๊ตฌ์กฐ
โ MongoDB ํจํค์ง ์ค์น
mongoDB์ฉ js ํ์ผ ์์ฑ
routes/mongo.js ํ์ผ ์์ฑ
npm i mongodb
๐ mongo.js ํ์ผ ์คํ
node routes/mongo.js
์๋ฌด๋ฐ ๋ฉ์์ง๊ฐ ์๋จ๋ฉด ์ ์์ ์ผ๋ก ์ ์์ด ๋ ๊ฒ
๐ MongoDB ์ ์์ฉ ํจ์ ์์ฑ
ํด๋ผ์ฐ๋ ์๋น์ค๋ฅผ ํ์ฉํ๊ณ ์์ผ๋ฏ๋ก async ์ฌ์ฉ
์๋ฒ์์ ํต์ ๋ถ๋ถ์ ์ ๋ถ await๋ก ์ฒ๋ฆฌ
์ ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์์ ์ถ๋ ฅํ์ฌ ์ ์์ด ์ ๋๋ ์ง ํ ์คํธ
const { MongoClient, ServerApiVersion } = require('mongodb');
// id, password ๋ถ๋ถ ๋ณธ์ธ๊ฒ์ผ๋ก ์์
const uri =
'mongodb+srv://Id:password@cluster0.sdiakr0.mongodb.net/?retryWrites=true&w=majority';
const client = new MongoClient(uri, {
useNewUrlParser: true,
useUnifiedTopology: true,
serverApi: ServerApiVersion.v1,
});
async function main() {
const db = await client.connect();
console.log(db);
await client.close();
}
main();
๐ซ MongoDB ์ฒซ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์์ฑ
const users = client.db('db๋ช
').collection('users');
๐ users.insertMany : ํ๋ฒ์ ๋ง์ ๋ฐ์ดํฐ(document) ์ฝ์
await users.insertMany([
{
name: 'pororo',
age: 5,
},
{
name: 'loopy',
age: 6,
},
{
name: 'crong',
age: 4,
},
]);
๐ users.find({}): ์กฐ๊ฑด์ ๋ถํฉํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ๋ค์ค
const data = users.find({});
await data.forEach(console.log);
์ ์ฒด ์ฝ๋ ํ์ธ
async function main() {
await client.connect();
const users = client.db('db๋ช
').collection('users');
await users.deleteMany({});
await users.insertMany([
{
name: 'pororo',
age: 5,
},
{
name: 'loopy',
age: 6,
},
{
name: 'crong',
age: 4,
},
]);
const data = users.find({});
await data.forEach(console.log);
await client.close();
}
โ mongoDB query
โ๏ธ ์ฝ์
๐ insertOne : ํ๋์ document ์ฝ์
await users.insertOne({
name: 'pororo',
age: 5,
});
๐ insertMany: ์ฌ๋ฌ document ํ๋ฒ์ ์ฝ์
์ฝ์ ํ ๋ํ๋จผํธ๋ ๋ฐฐ์ด์ ๋ด๊ธด ๊ฐ์ฒด ํํ๋ก ์ ๋ฌ๋์ด์ผ ํจ
await users.insertMany([
{
name: 'pororo',
age: 5,
},
{
name: 'loopy',
age: 6,
},
{
name: 'crong',
age: 4,
},
]);
โ๏ธ ์ญ์
๐ deleteOne
: ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฐ์ ์ฒ์์ ๋ํ๋จผํธ ํ๋๋ฅผ ์ญ์
users.deleteOne({
name: 'crong',
});
๐ deleteMany
: ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ชจ๋ ๋ํ๋จผํธ ์ญ์
await users.deleteMany({
age: { $gte: 5 },
});
โ๏ธ ์์
๐ updateOne
: ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฐ์ฅ ์ฒ์์ ๋ํ๋จผํฌ ํ๋ ์์
await users.updateOne(
{
name: 'loopy',
},
{
$set: {
name: '๋ฃจํผ',
},
}
);
๐ updateMany
: ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ชจ๋ ๋ํ๋จผํฌ ํ๋ ์์
await users.updateMany(
{
age: { $gte: 5 },
},
{
$set: {
name: '5์ด ์ด์',
},
}
);
๐ฉ $set
: mongoDB์ ๋ํ๋จผํธ๋ฅผ ์์ ํ ๋ ์ฌ์ฉ
์์ query์์ ๋ํ๋จผํธ๋ฅผ ์์ ํ ๋ $set: { ์์ ํ ๋ด์ฉ } ์ผ๋ก ์์ ํจ
๐ฃ ๋น๊ต์
๐ฃ ๋ ผ๋ฆฌ์
โ๏ธ ๊ฒ์
๐ findOne
: ๊ฒ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์ต์ด์ ๋ํ๋จผํธ๋ฅผ ์ฐพ์ ์ค
์ฐพ์์ ๊ฐ์ ๋ฐํ ํ๋ฏ๋ก ๋ณ์์ ๋ฃ์ด์ ์ฒ๋ฆฌ, ๋๋ ๋ฐ๋ก ์ถ๋ ฅํด์ค์ผํจ
const data = await users.findOne({
name: 'loopy',
});
console.log(data);
๐ find
: ์กฐ๊ฑด์ ๋ง๋ ๋ํ๋จผํธ ์ ๋ถ๋ฅผ ์ฐพ์ ์ค
โจ find ํน์ง
- find๋ก ์ฐพ์ ๊ฐ์ return์ด ๋๊ธด ํ์ง๋ง mongoDB์ ์ ๋ณด๋ฅผ ๊ฐ์ง cursor ๊ฐ์ฒด๋ก ์ ์ฅ๋จ
- ์ฆ, ํน์ DB๋ฅผ ๊ฐ๋ฅดํค๊ณ ์๋ ๊ฒ
- return์ด ๋ ๋ await๋ฅผ ์ฌ์ฉํ์ง ์์
- find๋ก ์ฐพ์ ๊ฐ์ ์ถ๋ ฅํ๋ ค๋ฉด forEach() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ผํจ
- ์ด๋๋ await๋ฅผ ๋ถ์ด์ค์ผ๋ง ์ถ๋ ฅ ๊ฐ๋ฅ
- ๋ฐ์ดํฐ๋ก ๋ณ๊ฒฝํ๋ ค๋ฉด toArray() ๋ฉ์๋ ์ฌ์ฉ
- ์ด๋๋ await ๋ถ์ด์ค์ผ ์ถ๋ ฅ ๊ฐ๋ฅ
const data = users.find({
name: 'loopy',
});
console.log(data);
await data.forEach(console.log);
โ user ์๋น์ค๋ฅผ mongoDB๋ก ์ฒ๋ฆฌ
mongo.js์์ mongoDB์ ์ ์ client๋ฅผ ๋ชจ๋๋ก exportsํด์ ๋ค๋ฅธ ๋ผ์ฐํฐ์์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋๋ก ํ๊ธฐ
// mongo.js
const { MongoClient, ServerApiVersion } = require('mongodb');
const uri =
'mongodb+srv://tetz:qwer1234@cluster0.sdiakr0.mongodb.net/?retryWrites=true&w=majority';
const client = new MongoClient(uri, {
useNewUrlParser: true,
useUnifiedTopology: true,
serverApi: ServerApiVersion.v1,
});
module.exports = client;
๐ mongoDB ๋ชจ๋ ๋ถ๋ฌ์ค๊ธฐ & ์ฌ์ฉํ๊ธฐ
users ๋ผ์ฐํฐ์์ mongoDB ๋ชจ๋ ๋ถ๋ฌ์ค๊ธฐ
// users.js
const mongoClient = require('./mongo');
getUsers ํจ์๋ก mongoDB์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์์ ๋ณ์์ ์ ์ฅํ๋ ํจ์ ๋ง๋ค๊ธฐ
async function getUsers() {
const client = await mongoClient.connect();
const cursor = client.db('db๋ช
').collection('users').find();
const data = await cursor.toArray();
return data;
}
updateUsers ํจ์๋ก mongoDB ๋ด์ฉ์ ์ ๋ฐ์ดํธ ํด์ฃผ๋ ํจ์ ๋ง๋ค๊ธฐ
async function updateUsers(data) {
const client = await mongoClient.connect();
const cursor = client.db('db๋ช
').collection('users');
await cursor.deleteMany({});
await cursor.insertMany(data);
}
(์ฌ์ค, ๋ ๋ํ ์ผํ๊ฒ ์ฒ๋ฆฌํด์ผ ํ์ง๋ง ์ผ๋จ ๋ค๋ฃจ๋ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฏ๋ก ์ด๋ ๊ฒ ์ฒ๋ฆฌ)
๐db ํต์ ์ฒ๋ฆฌ
user ๋ฐ์ดํฐ ๋ถ๋ฌ ์ค๋ ๊ณณ ์๋ ์ฝ๋ ์์ฑํด์ user ๋ฐ์ดํฐ๋ฅผ db์์ ๋ฐ์์ค๋๋ก ์ฒ๋ฆฌ
const USER = await getUsers();
user ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ ๋๊ณ ๋ ํ์๋ ํจ์๋ฅผ ์คํ์์ผ์ db์ ๋ณ๊ฒฝ ์ฌํญ ์ ์ฅ
await updateUsers(USER);
'Server > MongoDB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[mongoDB] Database์ ์๋ฃ ์ ์ฅํ๋ ๋ฒ (0) | 2022.08.27 |
---|---|
[mongoDB] mongoDB ์ ํ ํ๊ธฐ (0) | 2022.08.27 |