몽고디비 시작 및 접속(Linux)

  • 서비스 시작
    $ sudo service mongod start
    
  • 서비스 중지
    $ sudo service mongod stop
    
  • 서비스 상태확인
    $ sudo service mongod status
    


몽고디비 시작 및 접속(Windows)

  • 서비스 시작
    C:\"Program Files"\MongoDB\Server\3.6\bin\mongod
    

    몽고디비는 기본적으로 C:\data\db 경로를 바라보며 시작한다. 해당 경로가 없을 경우 정상적으로 서비스가 시작되지 않고 오류가 발생하므로 미리 해당 폴더를 만들어 두도록 한다.

  • 디비서버 접속
    C:\"Program Files"\MongoDB\Server\3.6\bin\mongo
    


mongo shell

  • 원격 디비서버 접속
    mongo shell 버젼과 원격 몽고디비의 버젼이 다를 경우 접속이 안 될 수 있음
    $ mongo --username alice --password abc123 --host mongodb0.tutorials.com --port 28015
    
  • 특정 DB로 접속
    $ mongo ds239911.mlab.com:39911/anony -u <dbuser> -p <dbpassword>
    


데이터베이스 관리

  • 데이터베이스 생성
    > use talkplace
    switched to db talkplace
    
  • 현재 데이터베이스 확인
    > db
    talkplace
    
  • 데이터베이스 목록 확인
    > show dbs
    admin      0.000GB
    config     0.000GB
    local      0.000GB
    talkplace  0.000GB
    test       0.000GB
    
  • 데이터베이스 삭제
    > use talkplace
    switched to db talkplace
    > db.dropDatabase()
    { "dropped" : "talkplace", "ok" : 1 }
    > show dbs
    admin   0.000GB
    config  0.000GB
    local   0.000GB
    test    0.000GB
    >
    


콜렉션 관리

  • 콜렉션 생성
    기본 옵션으로 생성
    > db.createCollection("posts")
    { "ok" : 1 }
    
  • 콜렉션 목록 확인
    > show collections
    book
    posts
    
  • 콜렉션에 다큐먼트 추가
    > db.posts.insert({"key" : "BJwttIGe7", "title" : "오늘은 왜케 잠잠하지.. 허허", "writer" : "송혜교", "conten
    t" : "그러니 왠지 더욱 불안..\n", "date" : 1528093055313 })
    WriteResult({ "nInserted" : 1 })
    

    posts 콜렉션이 이미 생성되지 않은 경우에는 자동으로 생성된 후 다큐먼트가 추가된다. 아래와 같이 배열로 여러 건을 한꺼번에 추가할 수도 있다

    > db.posts.insert([
    ... {"key" : "rJf4T8zlm", "title" : "이제 대략 정리가 된거 같다아", "writer" : "휴우", "content" : "정신 하나
    도 없었엉~~", "date" : 1528093993879 },
    ... {"key" : "SyTvQvflX", "title" : "이제 나왔다", "writer" : "카카", "content" : "서버에서 돈다 이젠", "date
    " : 1528095589017 }
    ... ])
    BulkWriteResult({
          "writeErrors" : [ ],
          "writeConcernErrors" : [ ],
          "nInserted" : 2,
          "nUpserted" : 0,
          "nMatched" : 0,
          "nModified" : 0,
          "nRemoved" : 0,
          "upserted" : [ ]
    })
    >
    
  • 콜렉션 삭제
    > show collections
    book
    posts
    > db.book.drop()
    true
    > show collections
    posts
    >
    


다큐먼트 관리

  • 전체 다큐먼트 목록 확인
    > db.posts.find()
    { "_id" : ObjectId("5b15e27b8169daf6fd8c7366"), "key" : "BJwttIGe7", "title" : "오늘은 왜케 잠잠하지.. 허허",
     "writer" : "송혜교", "content" : "그러니 왠지 더욱 불안..\n", "date" : 1528093055313 }
    { "_id" : ObjectId("5b15e27b8169daf6fd8c7367"), "key" : "rJf4T8zlm", "title" : "이제 대략 정리가 된거 같다아"
    , "writer" : "휴우", "content" : "정신 하나도 없었엉~~", "date" : 1528093993879 }
    { "_id" : ObjectId("5b15e27b8169daf6fd8c7368"), "key" : "SyTvQvflX", "title" : "이제 나왔다", "writer" : "카
    카", "content" : "서버에서 돈다 이젠", "date" : 1528095589017 }
    { "_id" : ObjectId("5b15e27b8169daf6fd8c7369"), "key" : "SJblZ_Me7", "title" : "안녕", "writer" : "이것도", "
    content" : "입력할때 좀 버벅 거리는 현상이 조금 있는거 같은디", "date" : 1528099049206 }
    >
    
  • 특정 속성의 값이 어떤 값이 아닌 다큐먼트 조회
    db.posts.find({uuid : {"$ne" : "xxxxxx"}}).pretty()
    
  • 다큐먼트 삭제
    db.posts.remove({key : "BJwttIGe7"})
    
  • 다큐먼트 수정
    db.posts.update({uuid: "xxxx1"}, {"$set" : {uuid: "zzzz2"}}, {multi: true})
    



Ref.