인덱스

6. MongoDB 쉘을 이용하여 데이터 저장하고 조회하기


6. MongoDB 쉘을 이용하여 데이터 저장하고 조회하기

: db나 테이블을 따로 만들지 않고 명령어를 수행하면 자동으로 DB와 테이블을 만들어주는 듯하다.

1. MongoDB 실행 

mongod - dbpath 경로    //    서버 실행

> mongo        //    MongoDB Shell 실행

> use admin

> db.shutdownServer()    //    Server 종료

* MongoDB 조회

> show dbs;     //     database 조회

> use test       //     test DB를 만들고 사용한다.

> show collections      //     현재 db의 collection list를 출력한다.

: RDBMS는 스키마에 따란 데이터만 저장할 수 있었다면, MongoDB는 다 저장할 수 있다.

* Javascript 명령

> var a = {age:25}  //  이런식으로 넣어줄 수 있다.

: javascript의 명령과 동일한 형태를 가진다

2. MongoDB 데이터 저

> db.scores.save({a:99});    //    데이터 저장

> db.scores.find();    //    해당 테이블을 출력

> for(i=0;i<10;i++){db.scores.save({a:i, exam:i})}    //    이런 것도 가능하다.

3. MongoDB 데이터 조회

> db.scores.find({a:2});    //    모든 입력매개체는 JSON형태를 따라야 한다.

: a가 2인 도큐먼트만 찾는다라는 뜻.

> db.score.find({a:{'$gt':15}});    //    a가 15보다 큰 도큐먼트만 찾는다.

> db.scores.find({a:{'$gte':2, '$lte':4}})    //    2보다 같거나 크고 4보다 작거나 같은 것들을 출력한다. (AND)

> db.scores.find({a:'{$in':[2,3,4]}})    //    $in 뒤에는 무조건 배열이다. 2,3,4 에 속하는 결과를 출력한다.

> db.scores.find{$or:[{'a':{$lt:1}, {'a':{'$gt':9}}]}    //    OR 연산

> db.score.find([컬럼:{'$exists':true}])    //    해당 컬럼이 존재하는 도큐먼트만 출력

> db.score.find({조건},{a:1,exam:1,_id:0})    //    조건에 해당하는 a, exam 컬럼만 출력

- 비교연산자

: $gt : '>', $lt : '<', $gte : '>=', $lte : '<=', $ne : '!='

: $in : is in array, $nin : ! in array


7. MongoDB 쉘을 이용하여 저장된 데이터를 수정하거나 삭제하기

1. 데이터 수정 UPDATE

* 전체 수정

> db.user.update({name:'Johnny'},{name:'Cash',languages:['english']})    //    해당 데이터의 도큐먼트가 _id를 제외하고 모두 바뀐다.

* 일부 수정

> db.user.update({name:'Cash'},{$set:{age:50}});    //    해당 도큐먼트에 age가 있으면 50로 변경하고 없으면 age를 50으로 추가한다.

* 일부 삭제

> db.user.update({name:'Cash'},{$unset:{age:50}})    //    age를 삭제한다. 뒤의 값은 상관이 없는것같다.

* 배열 값 삭제

> db.use.update({name:'Sue'},{$pull:{languages:'scala'}});    //    해당 도큐먼트의 배열에서 해당 값만 사라진다.

* 배열 값 추가

> db.use.update({name:'Sue'},{$push:{languages:'scala'}});    //    해당 도큐먼트의 배열에 해당 값이 추가된다.

2. MongoDB 삭제

* Document 삭제

> db.users.remove({name:'Sue'})    //    해당 도큐먼트를 삭제한다.

> db.users.remove({})    //    도큐먼트만 전체 삭제한다.

* Collection 삭제

> db.users.drop()


+ Recent posts