1. DB에 collection 생성
2. Collection에 자료 추가 - insertOne
db.collection('post').insertOne( {name : 'Jinno', age : 80, memo: 'hello'} , function(err, result){
console.log('db의 콜렉션(post)에 저장 완료');
});
3. Collection에서 자료 찾기 - findOne
db.collection('post').findOne( {name : 'Jinno'} , function(error, result){
console.log(result.name);
});
4. Collection에서 자료 찾기 - find
db.collection('post').find().toArray(function (error, result) {
res.render('List.ejs', { contents: result});
});
5. Collection에서 자료 삭제 - deleteOne
db.collection('post').deleteOne({name : 'Jinno', age : 80, memo: 'hello'},function(error, result){
res.status(200).send('Success');
});
app.delete('/delete', function(req, res){
req.body._id = parseInt(req.body._id)
db.collection('post').deleteOne(req.body,function(error, result){
res.status(200).send('Success');
});
});
html에서 넘어오는 숫자가 문자형으로 바뀌는 경우가 있음. 그럴 경우는 parseInt로 변환
6. Collection에서 자료 수정 - updateOne
app.put('/edit', function(req,res){
db.collection('post').updateOne({_id: parseInt(req.body.id)}, {$set: {name:req.body.name, date:req.body.date}}, function(error, result){
console.log('수정완료')
res.redirect('/list')
})
})
7. Collection에서 자료 수정 - updateOne, $inc
app.post('/add', function(req, res){
db.collection('counter').findOne({name:'namecounter'}, function(error, result){
db.collection('post').insertOne({_id: result.totalPost+1, name: req.body.title, date: req.body.date}, function(error, result){
if(error) {return console.log(error)}
db.collection('counter').updateOne({name:'namecounter'},{$inc: {totalPost:1}}, function(){});
res.redirect('/list');
});
});
});