본문 바로가기
DataBase/NoSQL

[NOSQL]MongoDB 기본 명령어

by 스파이디웹 2021. 1. 7.
728x90

-[시스템 속성]-[환경 변수 편집]-[환경 변수]-[시스템 변수의 path]에 mongodb\Server\버전\bin파일을 등록한다.


1.mongoDB 서버 실행

>mongod --dbpath<DB경로>

 

Command 창을 열어 위의 명령어를 실행해준다. 기본경로에 파일을 만든 사람은 그냥 mongod 만 쳐도 되고 path 를 따로 지정해주고 싶으면 뒤의 --dbpath 와 원하는 경로도 같이 넣어줘서 폴더를 지정할 수 있다.


2.mongoDB 쉘 실행

>mongo

 

-서버를 실행해 둔채로 새로운 커맨드창을 여러 위의 커맨드를 실행한다.

3.데이터베이스 생성,조회,사용

>show dbs

-데이터 베이스의 목록을 보여줍니다.(현재 testdb는 만들어둔 DB)

 

>use <DB이름>

 

-데이터 베이스를 사용하려면 관계형 db에서 database를 만들고 table 을 만들어 주는 것과 똑같이 database 를 먼저 만든 후 collection 을 만들어 주면된다.

 

-use 명령어를 통해서 db사용및,생성한다.

 

-새롭게 존재하지 않는 Database를 생성하기위해 명시적으로 생성하는 명령어가 필요하지 않습니다.

 

-Database를 전환하는 명령어를 입력하고,  데이터를 insert하면 자동으로 Database와 Collection이 자동으로 생성됩니다.

>db

-현재 사용하고 있는 데이터베이스를 보여준다.

>db.컬렉션이름.insertOne({키:값}) //여기에서 db는 현재 사용하고 있는 데이터베이스를 의미.


명시적인 collection 생성

db.createCollection(<Collection 명칭>, { capped: <boolean>,

                              autoIndexId: <boolean>,

                              size: <number>,

                              max: <number>,

                              storageEngine: <document>,

                              validator: <document>,

                              validationLevel: <string>,

                              validationAction: <string>,

                              indexOptionDefaults: <document>,

                              viewOn: <string>,

                              pipeline: <pipeline>,

                              collation: <document> } )

 

옵션 내용

 

FieldTypeDescription

capped boolean capped collection(제한된 크기만 저장) , true 로 값을 지정할 경우 반드시 ‘size’ 옵션을 통해 최대값을 설정해야만 합니다.
autoIndexId boolean

false로 입력할경우 _id 필드에 자동 index 생성이 disable됩니다.

size number capped collection에서 최대 bytes, 최대 bytes에 도달 할 경우, MongoDB는 오래된 Documents를 지웁니다.
max number capped collection 에서 최대 Document 수, size 옵션이 우선함, max 옵션이 우선하게 하려면 충분한 size옵션을 주어야 합니다.

 

Cappped Collection 이란?  

 

  -  최초 제한된 크기로 생성된 공간 내에서 만 데이터를 저장할 수 있고, 최초 공간이 모두 사용되면 다시 처음으로 돌아가서 기존 공간을 재사용하는 타입의 Collection 

 

  -  로그 데이터 처럼 일정한 기간 내에서 만 저장, 관리할 필요가 있는 데이터에 효과적인 타입

 

100000 바이트 크기의 log 라는 명칭의 capped collection Collection 을 생성합니다.

db.createCollection( "log", { capped: true, size: 100000 } )

 

20000 바이트 한계치와 5000 Document 한계치를 가진 log2 라는 명칭의 Collection을 생성 합니다.

db.createCollection("log2", { capped : true, size : 20000, max : 5000 } )

‘size’ 옵션은 필수 값입니다. max 값에 도달 하지 않았더라도 size 값에 도달하면  ‘log2' Collection에 오래된 Document는 삭제될 것입니다.

 

 

아래는 해당 Collection이 capped 속성을 가지고 있는지 체크하는 함수입니다.

db.log2.isCapped()

 

capped collection 이 아닌 collection을 capped collection 으로 변경해보겠습니다. test2 Collection 을 변경합니다.

db.runCommand({"convertToCapped": "test2", size: 100000});


4.컬렉션 조회

>show collections


5.Document

#Insert()

>db.testcollection.insert({"Key":"value","Key2":"value2"})

 

-document 는 insert 명령어를 통해 json format 으로 insert 한다. 배열의 형태로 넣으려면 [] 를 사용한다. json format 과 똑같다.

#find()

>db.컬렉션이름.find()

-find를 이용하여 collection에 들어 가 있는 값들을 볼 수 있다.

-find(query, projection) 메소드는 query 와  projection parameter 를 주어서 원하는 조건의 검색과, 보고싶은 결과 선택도 가능하다. 0은 보기, 1은 안보기 

#update()

>db.컬렉션이름.update(

<query>,

<update>,

{

upsert: <boolean>,

multi: <boolean>,

writeConcern:

<document>

}

)

 

ParameterTypeDescription

query document update를 위한 selection criteria(기준)이다. find()의 query와 같다. SQL의 WHERE절과 유사하다.
update document document에 update할 수정 사항이다.
upsert boolean Option(Default: false) true로 설정하면 query criteria에 매칭하는 document가 없을 경우 새로운 document를 insert한다. false로 설정하면 insert하지 않는다.
multi boolean Option(Default: false) true로 설정하면 query criteria에 매칭하는 document 모두를 update한다. false로 설정하면 하나의 document만 update한다.
writeConcern document Option. database에 write(insert, update, remove) 처리를 영속화시키기 위한 설정이다. 기본 설정을 사용하려면 이 설정을 생략한다. 자세한 내용은 Write Concern을 참조하기 바란다.

ex)

6.삭제

#document삭제

>db.컬렉션이름.remove({"key":"value"})

#collection 삭제

>db.컬렉션이름.drop()

#database 삭제

>db.dropDatabase()

 

출처:

velopert.com/545

cionman.tistory.com/45

freekim.tistory.com/13

poiemaweb.com/mongdb-basics-shell-crud

728x90

댓글