본문으로 바로가기

MongoDB의 자료구조

category DB/MongoDB 2015. 10. 13. 11:31


  참조하세요

일반 SQL문을 mongoDB syntax로 바꾸어주는 홈페이지: http://www.querymongo.com/




  1. DB의 기본단위 Collection

A collection of MongoDB documents.

관계형 데이터베이스처럼 스키마를 정하고 생성하지 않는다.


1) Capped Collection

- 최초 저장된 사이즈로 생성

- 저장공간이 모두 사용되면 다시 돌아가서 기존 공간을 재사용한다.(Queue의 형태-FIFO)

2) No Capped 

- 길이의 제한이 없는 Collection


  (기본 CRUD) INSERT

The components of a MongoDB insert operations.

사용법: db.collection명.insert명령문()

1. 기본 삽입

db.member.insert({id:"jang",pass:"1234"})


2. 변수를 통한 삽입

mydata = {id:"lee",pass:"1234"}

db.member.insert(mydata)


3. for문을 통한 삽입

for(var i=1100;i<=1120;i++){

db.member.insert({id:i,msg:"test"})

}



  (기본 CRUD) UPDATE

The components of a MongoDB update operation.

사용법: db.collection명.update({조건필드:값},{수정할 필드:값},{업데이트옵션:값})

[제한자] - 수정할 필드에 정의

$set : 해당 필드의 값을 변경

$unset : 해당 필드를 삭제할 때 사용

$inc : 해당 필드의 값을 증가


[업데이트옵션]

multi : true 값을 정의할 수 있으며 조건에 만족하는 모든 document의 값을 변경하라는 의미

upsert : true 값을 정의하면 컬럼이 존재하지 않는 경우 컬럼을 추가하라는 의미


+ capped collection 규칙에 위반되는 경우, 경고가 뜨게 된다. 

1. 아키텍쳐를 바꾸는 update

db.member.update(id:"jang",pass:"jang") : syntax 오류

db.member.update({id:"jang"},{pass:"jang"})



  (기본 CRUD) 배열의 활용 

사용법 : [] 내부에 선언하며, insert / update 등에 활용 가능하다

예시 : db.score.update({id:"kim"},{$set:{lang:{ms:["C#",".NET"],java:["jdbc","servlet"]}}})

[제한자]

$push : 배열에 요소를 추가하기

$addToSet : 기존 배열에 해당 값이 없는 경우에만 해당 필드와 값을 추가(중복을 막기 위해 사용된다)

$pop : 배열의 첫 번째나 마지막 요소를 제거한다. (1,-1)

$pull : 조건에 맞는 요소를 가져와서 해당 요소를 제거한다.

$pullAll : 배열에서 요소의 값을 제거

$each : 반복된 값을 저장할 때 사용하기(여러 개를 저장)





  (기본 CRUD) SELECT

find(rdbms의 select와 동일)

[구문]

find(조건, 조회할필드정보)

* 조건, 조회할 필드벙보 모두 {}로 표현

* 조회할 필드정보 : 필드 정보를 {}로 표현

   형식 {필드명:1,2,...} 조회하고 싶은 필드를 필드명:1 로 표시

   (필드명:0 으로 표시하면 0으로 표시된 필드가 조회되지 않는다)

* find()는 find({})와 동일 : {} 안에 아무것도 명시되어 있지 않으면 전체 데이터를 조회하라는 의미


findOne() - 결과가 하나만 리턴될 때 

count() - 행의 갯수를 리턴


[조건]

$lt : <

$gt : >

$lte : <=

$gte : >=


$or : 여러 컬럼을 비교할 때 사용

$in : 하나의 컬럼에서 여러가지 값을 가지고 비교할 때

$nin : 지정된 값만 제외할 때





'DB > MongoDB' 카테고리의 다른 글

MongoDB의 클라이언트/서버 기초  (0) 2015.10.13
MongoDB 설치 및 실행  (0) 2015.10.13