[Node.js] mongoDB 쿼리

Posted by 신희준 on November 11, 2017



2017 - 11 - 11 (토)

  • MongoDB 구조
  • MongoDB SQL


  • MongoDB 구조


    • 컬렉션(Collection) : MongoDB 에서는 Mysql 이나 Oracle 등에서 쓰는 테이블을 용어적으로 컬렉션이라 칭한다. 하지만 테이블과 조금 다른 점이 있다. 테이블은 데이터 저장 시 정해놓은 칼럼의 형태대로 컬렉션에 넣어야 하지만 MongoDB 의 경우 이러한 제약이 없다.


    • 문서 객체(Document) : MongoDB 에서는 각각의 컬렉션에서 하나의 행을 문서객체라고 한다.


    • 데이터베이스 생성 : use 데이터베이스명


    //--이미 존재하는 db일 경우 해당 db를 사용하게되고 없을 경우 생성--//
    > use 데이터베이스명
    //--현재 사용하는 db 확인--//
    > db                           
    //--현재 존재하는 데이터베이스 리스트 확인--//
    > show dbs
    


    • Database 제거하기 : db.dropDatabase()


    > use db명
    > db.dropDatabase()
    //--위에서 선택한 db제거--//
    


    • Collection 생성 : db.createCollection(name, [options])


    //--옵션없이 컬렉션 생성--//
    > db.createCollection('users')
    //--옵션있는 컬렉션 생성--//
    > db.createCollection('users', {'옵션명' : '옵션값'})
    //--collection 리스트 확인--//
    > show collections
    


    • Collection 제거 : db.Collection명.drop()


    > use db명
    //--유저 컬렉션 제거--//
    > db.users.drop()
    



    MongoDB 쿼리메소드


    • 조회하기 : find()


    > db.collection명.find()
    > db.collection명.find().pretty() //도큐먼트조회시 속성별로 줄바뀜해서 출력해준다.
    


    • 추가하기 : insert()


    > db.collection명.insert([{'속성1':'속성값1', '속성2':'속성값2'}])
    


    • 제거하기 : remove()


    //-- name 속성이 신희준인 document 제거 --//
    > db.collection명.remove({"name" : "신희준"})
    


    • 수정하기 : update()


    > db.collection명.insert([{'name':'신희준', 'job' : 'accountant'}])
    //-- name 속성이 신희준인 document 의 job 속성의 값을 programmer 로 수정 --//
    > db.collection명.update({name:'신희준'}, {$set:{job: 'programmer'}})
    


    • 특정 속성 제거하기


    //-- name 속성이 신희준인 document 의 job 속성을 제거 --//
    > db.collection명.update({name:'신희준'},{$unset: {job:'programmer'}})