👾한번 해봄 시리즈👾
=할건 따로있는데 한번 손대고싶어서 일단 찍어먹어보는 시리즈
------------------------------
기본 셋팅 및 활용법은 여기서
https://peamexx.tistory.com/92
-----------------------------------------
mongoDB에 데이터 넣기
1. 청사진 만들기
일단 user에 대한 DB를 만들어서
이메일주소, 이름, 비밀번호를 넣을 생각임.
이를 위해 기본 틀이 필요한데
schemas라는 폴더 생성 후 안에
userSchemas.js를 만들어준다.
2. userSchemas.js에 입력
const mongoose = require('mongoose');
const userSchema = mongoose.Schema({
email: String,
userName: String,
password: String
});
module.exports = mongoose.model('users', userSchema);
3. server.js에 입력
const userSchema = require('./schemas/userSchemas');
mongoose.connect(process.env.DB_URL, { useNewUrlParser: true, useUnifiedTopology: true }, (err) => {
if(err) {
console.log(err);
} else {
console.log('db에 연결되었습니다.');
const user = {
email: 'test@email.com',
userName: 'hobs',
password: '1234@'
}
new userSchema(user).save();
}
});
아까 만든 그 틀을 여기서 require로 불러온다음,
mongoDB가 성공적으로 연결되었을 때
user라는 객체 정보를 전달해서 저장해준다는 말임.
4. 사이트에서 확인
mongoDB 사이트 > 해당 클러스터 클릭 > Collections 누르면
이렇게 방금 쓴 유저값이 DB에 들어가있는것을 알 수 있음.
https://youtu.be/Tw60z-mvb_o?list=PLaxxQQak6D_dHXuCYHwgyHwhs225vUX6d
-----------------------------------------
mongoDB에있는 데이터 조회하기
5. server.js에 입력
mongoose.connect(process.env.DB_URL, { useNewUrlParser: true, useUnifiedTopology: true }, async (err) => {
if(err) {
console.log(err);
} else {
console.log('db에 연결되었습니다.');
const result = await userSchema.find({
email: 'test@email.com',
});
console.log('결과', result);
}
});
(async랑 await 쓰는거 잊지 말아야함)
이번에는 중간에 result변수를 만들어서 값을 찾고 콘솔에 찍어주도록 해보았음.
이렇게 나온다.
※ 맨처음에는 결과값이 저렇게 안나오고 무슨 Query 이래가지고 엄청 긴 내용들이 나왔는데,
혹시나 싶어서 async랑 await를 입력해보니까 제대로 나왔음.
드디어 이런곳에 쓰는구나라는걸 확실하게 느낌.
https://youtu.be/DKW2K_blntQ?list=PLaxxQQak6D_dHXuCYHwgyHwhs225vUX6d
-----------------------------------------
mongoDB에있는 데이터 수정/삭제하기
6. server.js에 입력
mongoose.connect(process.env.DB_URL, { useNewUrlParser: true, useUnifiedTopology: true }, async (err) => {
if(err) {
console.log(err);
} else {
console.log('db에 연결되었습니다.');
const result = await userSchema.update({
userName: 'cate'
}, {
userName: 'marry'
});
}
});
이렇게 하면 이름이 cate인게 marry로 변하게 됨.
※ 여기서 경고가 하나 뜨는데 updateOne으로 변경해주면 된다.
만약 password가 같은 유저가 2명있는데 updateOne으로 변경하면, 제일 최신 유저만 변경된다.
둘다 바꾸고 싶다면 updateMany로 바꿔주고 하면 된다.
※ 삭제는 그냥 deleteOne, deleteMany로 해주면 된다.
https://youtu.be/peVGxJCMGQI?list=PLaxxQQak6D_dHXuCYHwgyHwhs225vUX6d
-----------------------------------------
mongoDB에있는 데이터 찾아서 삭제하기
7. server.js에 입력
mongoose.connect(process.env.DB_URL, { useNewUrlParser: true, useUnifiedTopology: true }, async (err) => {
if(err) {
console.log(err);
} else {
console.log('db에 연결되었습니다.');
await userSchema.findOneAndUpdate({
userName: 'cate'
}, {
email: 'test@naver.com',
userName: 'marry',
password: '204~!9fn2'
}, {
upsert: true
});
}
});
위에 있는 update와 무슨 차이냐고 한다면
update는 그냥 있는거에서 찾아서 데이터를 수정한다고 치면,
findOneAndUpdate는 그 기능은 맞는데, 추가로 만약에 해당하는 데이터가 없으면 두번째 파라미터 내용로 새로 하나 추가한다라는 부가적인 기능을 가지고 있음(upsert: true)
https://youtu.be/580jY9xmv_k?list=PLaxxQQak6D_dHXuCYHwgyHwhs225vUX6d
-----------------------------------------
mongoDB에있는 데이터 찾아서 삭제하기
8. server.js에 입력
'기타등등 > 한번해봄' 카테고리의 다른 글
👾한번 해봄 시리즈👾 heroku 가입 및 node.js 프로젝트 배포하기 (0) | 2022.06.29 |
---|---|
👾한번 해봄 시리즈👾 REST API 혹은 mongoDB 활용전 기본과정 (0) | 2021.05.29 |
👾한번 해봄 시리즈👾 React native.js를 배워보자 (0) | 2021.03.22 |
👾한번 해봄 시리즈👾 react.js를 배워보자 (0) | 2021.01.10 |
👾한번 해봄 시리즈👾 node.js를 배워보자 (0) | 2020.12.31 |