MongoDB Atlas 가입과 초기 세팅 법은 인터넷에 잘 나와 있으니 패스한다.
데이터를 일정한 형식으로 저장할 수 있게 도와주는 곳이라 보면 된다.
ex) 엑셀
엑셀에서는 시트를 하나 만든 후 행과 열에 원하는 데이터를 기입하면 자료 저장이 된다.
데이터베이스도 동일하지만 SQL이라는 언어를 써서 데이터를 입, 출력한다.
나는 javascript 기반으로 쓰고 싶기도 하고, 프론트를 목표로 하고 있기 때문에 object 자료형으로 데이터를 저장 해 주는 NoSQL언어를 사용하는 DB를 배우기로 했다.
const MongoClient = require('mongodb').MongoClient;
MongoClient.connect('메모장에 저장해둔 URL',function(err, client) {
if (err) return console.log(err);
//서버 띄우는 코드 여기로 이동시키기
app.listen('8080', function(){
console.log('8080번으로 서버 띄우는 중')
})
});
메모장에 저장해둔 URL에 패스워드 입력란 <password>
를 지우고 패스워드를 입력한다.
그리고 app.listen 코드를 안쪽으로 옮겨주면 된다.
database/ collection 만들기
let db;
MongoClient.connect('메모장에 저장해둔 URL',{ useUndifiedTopology: true }, function(err, client) {
if (err) return console.log(err);
db = client.db('todoapp');
app.listen('8080', function(){
console.log('8080번으로 서버 띄우는 중')
})
});
위 코드를 상단에 작성해준다.
{ useUndifiedTopology: true } 쓰면 워닝 메세지를 제거해준다.
let db;로 전체에서 쓸 수 있는 전역 변수를 만들고, client.db('todoapp')으로 todoapp이라는 database에 접속해달라는 명령을 내린 것이다.
let db;
MongoClient.connect('메모장에 저장해둔 URL',{ useUndifiedTopology: true }, function(err, client) {
if (err) return console.log(err);
db = client.db('todoapp');
db.collection('post').insertOne( { name: 'changhyeon', _id : 100}, function(err, result) {
console.log('저장완료');
});
app.listen('8080', function(){
console.log('8080번으로 서버 띄우는 중')
})
});
코드 중간에 새로운 코드 세줄을 작성했다. DB에 자료를 추가할 일이 있을 때마다 작성하면 된다.
db.collection('post') 라는 것은 collection 중에 post를 선택한다는 뜻이고, insertOne을 붙이면 자료를 추가할 수 있다.(Object 자료형식으로 추가할 수 있다.)
insertOne 함수는 insertOne(추가할 자료, 콜백함수) 형식으로 작성한다.
MongoDB에서는 자료를 서로 구분하기 위해 _id가 꼭 있어야한다.
일종의 출석번호 느낌이라고 생각하면 쉽다.
이걸 직접 작성해줘야 하는데, 작성을 안하더라도 자동으로 만들어준다.
_id: ~이렇게 임의로 고유 id를 만들어주는데, 깔끔하게 보이는게 좋기 때문에 _id:1 이런식으로 번호를 붙여 저장한다.