LearnApplyShare

[mongoDB] 명령어

June 05, 2018 - [mongodb, command]

몽고디비 시작 및 접속(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.