Database에 자료 저장하는 법
DB와 통신
이제 app.js 파일 코드를 짜서 db와 통신해보도록 합시다.
let db;
MongoClient.connect('접속URL', { useUnifiedTopology: true }, function (에러, client) {
if (에러) return console.log(에러)
db = client.db('todoapp');
app.listen(8080, function () {
console.log('listening on 8080')
});
});
( { useUnifiedTopology: true }, 이건 쓰면 좋습니다. 워닝메세지를 제거해줍니다.)
이렇게 여러분 코드를 바꿔주시면 됩니다. 첫줄과 넷째줄에 코드가 추가되었죠? let db;로 페이지 전체에서 쓸 수 있는 전역 변수를 하나 만들고, 그리고 client.db(‘todoapp’) 이라는 이상한 함수로 todoapp 이라는 database 에 접속해주세요. 라는 코드 입니다.
collection에 자료 하나 추가하는 법
세줄만 쓰시면 아까 만든 collection에 내가 원하는 자료를 추가해볼 수 있습니다.
var db;
MongoClient.connect('접속URL', { useUnifiedTopology: true }, function (에러, client) {
if (에러) return console.log(에러)
db = client.db('todoapp');
db.collection('post').insertOne( {이름 : 'John', _id : 100} , function(에러, 결과){
console.log('저장완료');
});
app.listen(8080, function () {
console.log('listening on 8080')
});
});
중간에 세줄이 추가되었습니다. DB에 자료 추가할 일이 있을 때마다 저거 세줄 쓰시면 됩니다.
db.collection(‘post’) 라는건 collection 중에 post 라는걸 선택한다는 뜻이고
뒤에 insertOne을 붙이시면 자료를 추가할 수 있습니다. (Object 자료형식으로 추가가능)
그리고 insertOne 함수는 insertOne(추가할 자료, 콜백함수)
이렇게 쓰시면 되겠습니다.
db.collection('post').insertOne()
이 패턴 잘 기억해주시길 바랍니다. 나중에 데이터 추가하고 삭제하고 수정할 때도 이거와 동일한 형식으로 쓸 거니까요. (서버개발은 이해보다 패턴 외우는게 중요합니다!!)
몇줄에 걸친 긴 코드를 합쳐서 한번에 작성한다면
client.db(‘todoapp’).collection(‘post’).insertOne(추가할 자료, 콜백함수)
이렇게 쓰셔도 됩니다.
_id 라는건 왜 붙이죠?
mongoDB에선 자료들을 서로 구분하기 위해 _id가 꼭 있어야합니다. 일종의 출석번호라고 생각하시면 됩니다. 이걸 직접 집어넣으셔야 하는데 안집어넣으시면 알아서 하나 만들어줍니다. _id : ObjectId(어쩌구) 이런 식으로 유니크한 아이디를 하나 부여해줍니다. 근데 보기싫으니까 보통 번호붙여 저장하시면 되겠습니다. 번호 붙이는 법에 대해 알아봅시다.
Last updated
Was this helpful?