본문 바로가기

Back-end/Mongodb

nodejs에서 mongodb 설정하기

mongodb와 nodejs 설정

기본설정

몽고 패키지 가져오기(공통적으로 들어감))

const {MongoClient} = require('mongodb');
// const MongoClient = require('mongodb').MongoClient 

몽고 접속 및 서버 닫기

MongoClient.connect('mongodb://localhost:27017/TodoApp', (err, db)=> {
    if (err) {
        console.log('unable to connect to Mongodb');
    }
 
    console.log('connect to mongoDb server');
 
 
    dbclose();
 
});

조회

전체검색

Todos 콜렉션에서의 모든 데이터 검색

db.collection('Todos').find().toArray().then((docs)=>{
        console.log(JSON.stringify(docs, undefined, 2));
    },(err)=>{
        console.log('unable to fetch todos', err);
    });

조건검색(where)

completed가 false인것을 전체검색

db.collection('Todos').find({completed:false}).toArray().then((docs)=>{
        console.log('Todos');
        console.log(JSON.stringify(docs, undefined, 2));
    },(err)=>{
        console.log('unable to fetch todos', err);
    });

개수검색(count)

Todos 콜렉션의 전체 개수 반환

db.collection('Todos').find().count().then((docs)=>{
       console.log('Todos count:'+ docs);
   },(err)=>{
       console.log('unable to fetch todos', err);
   });

수정

findOne(하나를 찾아) Update함

db.collection('Todos').findOneAndUpdate({
        //_id포맷은 string이 아닌 objid 형식이다. 
        _id:new ObjectID('583da128975a04dc8728198f')
    },{
        //수정을 하기 위한 연산자 
        $set:{
            completed: true
        }
 
        //$inc라는 연산자가 있음 
        //inc:{age:1} 을 할경우 
        //age가 1만큼 올라감. 
    },{
        returnOriginal:false
    }).then((result)=>{
        console.log(result);
    });

추가

하나를 추가.

    db.collection('Users').insertOne({
        // _id:12232334, 
        name: 'Andre',
        age: 25,
        location: 'philadelphia'
    }, (err,result)=>{
       if(err){
           return console.log('unable to inert user', err);
       }

삭제

하나삭제

// result:{ok:1, n:1} 와 같은 형태를 반 
db.collection('Todos').deleteOne({text:'111'}).then((result)=>{
   console.log(result);
});

하나를 찾아서 삭제.

db.collection('Todos').findOneAndDelete({completed:false}).then((result)=>{
       console.log(result);
    });

여러개 삭제

db.collection('Todos').deleteMany({complete:false});