-[시스템 속성]-[환경 변수 편집]-[환경 변수]-[시스템 변수의 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()
출처:
'DataBase > NoSQL' 카테고리의 다른 글
[NoSQL] MongoDB capped collection, TTL collection (0) | 2021.01.19 |
---|---|
[NoSQL] python에서 MongoDB연동시키기 (0) | 2021.01.14 |
[NOSQL] MongoDB Shell(명령어)로 CSV, JSON import 해보기 (0) | 2021.01.11 |
[NOSQL] MongoDB의 역할 및 활용 사례 (0) | 2021.01.08 |
[NoSQL]NoSQL(Not Only SQL) 종류와 특징 간단히 정리 (0) | 2020.10.08 |
댓글