SKILL/DATABASE

몽고db 연습예시 1일차

Jedy_Kim 2017. 12. 28. 15:58
728x90

mkdir C:\data\db

mongod.exe

port 27017


db : show databases

use hellomongo : db 생성

db.dropDatabase() : db삭제

db.createCollection("animals") : table생성

show collections

db.animals.drop()

db.animals.find() : 전체 조회

db.animals.find().pretty() : 예쁘게 출력해줌

db.animals.remove({"name" : "cafe"}) : 삭제

db.animals.remove({"species": "cat"})

db.animals.find({"name":"latte"}).pretty()


 db.createCollection("members", {

... capped : true, //크기를 지정, 크기에대한 사이즈를 지정하겠다

... autoIndexId : true, //id값을 자동으로 설정해줌

... size : 6142800 //사이즈를 지정해줌

... })


db.animals.insert({"name" : "cafe", "species" : "cat" })

db.animals.insert({"name" : "cafe", "species" : "cat", "gender" : "F" })

db.animals.insert([

{"name" : "latte", "species" : "cat"},

{"name" : "coffe", "species" : "dog"}

])


db.animals.insert([

{ "name":"cafe","species":"cat","age":3,"address":[]},

{ "name" : "donggu","species" : "dog","age" : 6,"address" : [{ "basic":"daejeon", "detail" : "yuseong"}]},

{ "name" : "latte", "species" : "cat", "age" : 2, "address" : [{ "basic" : "chunan", "detail" : "dujeong" },

{ "basic" : "seoul", "detail" : "mapo"}]}])


mongoDB 

비교연산자

$eq : 해당 값이 일치하는 값

$ne : 해당 값과 일치하지 않은 값

$gt : 해당 값보다 큰 값

$gte : 해당 값보다 같거나 큰 값

$lt : 해당 값보다 작은 값

$lte : 해당 값보다 같거나 작은 값

$in : 해당 배열 안에 포함되어 있는 값

$nin : 해당 배열 안에 포함되지 않은 값


db.animals.find({"age": { $gte:3}}).pretty()

db.animals.find({"species": {$in:["cat"]}}).pretty()


논리 연산자

$or : 조건 중 하나라도 ture -> true

$and : 조건 모두가 true -> true

$not : 조건이 false -> true, true -> false

$nor : 조건 모두가 false -> true



db.animals.find({$or:[{"species" :"cat"},{"age":6}]}).pretty()

db.animals.find({$and:[{"species" :"cat"},{"age":2}]}).pretty()

정규식

db.animals.find({"species":/c/}).pretty()


$where

db.animals.find({$where:"this.address.length==0"}).pretty()


$elemMatch : address 중 seoul이 있는 doc검색 -> 해당 요소의 원소값에대한 매치

db.animals.find({"address":{$elemMatch:{"basic":"seoul"}}}).pretty()


db.animals.find({"address":{$elemMatch:{"basic":"seoul"}}},{"name":true,"address":{$elemMatch:{"basic":"seoul"}},"address.basic":true,"address.detail":true})

.pretty()

////////////////////////////////////////

db.animals.find(

{

"address":{

 $elemMatch:{"basic":"seoul"}

}},

 {

  "name":true,  

  "address.basic":true,

  "address.detail":true}).pretty()


db.animals.find({ }, {"_id":false, "name":true, "species":true, "age":true}).pretty()


db.members.insert([

{ "_id": 1, "member" : {"name":"Georgi", "gender": "m"}, "age": 45, "salary":14000},

{ "_id": 2, "member" : {"name":"Bezalel", "gender": "m"}, "age": 42, "salary":14000},

{ "_id": 3, "member" : {"name":"Parto", "gender": "m"}, "age": 45, "salary":14000},

{ "_id": 4, "member" : {"name":"Christan", "gender": "f"}, "age": 46, "salary":14000},

{ "_id": 5, "member" : {"name":"Kyoichi", "gender": "f"}, "age": 49, "salary":14000},

{ "_id": 6, "member" : {"name":"Anneke", "gender": "f"}, "age": 41, "salary":14000}

])


나이를 내림차순으로 정렬

db.members.find().sort({"age": -1}) //내림차순 -1, 오름차순 1

나이를 오름차순으로 급여는 내림차순

db.members.find().sort({"age":1, "salary" : -1})


db.members.find().limit(3)

db.animals.find({"name":"latte"}, {address:{$slice:1}}).pretty()

====================================================================================================================


1. createCollection()

db.createCollection(name, options)

//name : 생성할 컬렉션의 이름 

//options : (선택)메모리 관련 옵션 지정

// {

capped (Boolean) : true인 경우 고정된 크기의 컬렉션, size option을 필수 설정, size over시 오래된 항목을 덮어씌움.

autoIndexID (Boolean) : true시 자동으로 _id Field 값 지정

size (number) : capped의 크기를 지정 (capped가 true)

max (number) : 최대 document의 개수

// }


2. drop()

db.COLLECTION_NAME.drop()


3. MongoDB DataType

String : UTF-8

Boolean

Integer

Double

Max/Min Keys : 최대/최소 값과 비교하는 사용

Arrays

Timestamp

Object

Null

Symbol : String과 비슷하나, 고정기호 유형을 사용할 때

Date

object ID - 자동으로 부여된 값

Binary data

Code : JS code를 저장하는데 사용

Regular Expression : 정규 표현식 저장하는데 사용

4. insert()

db.COLLECTION_NAME.insert(document)


5. find()

db.COLLECTION_NAME.find()

pretty()

db.COLLECTION_NAME.find().pretty()


6. 조건 연산자

Equality {<key>:<value>}

db.COLLECTION_NAME.find({"name":"latte"}).pretty()

SQL : WHERE name = "latte";

Less Than {<key>:($lt:<value>)}

db.COLLECTION_NAME.find({"age":{$lt:3}}).pretty()

SQL : WHERE age < 3;

Less Than Equals {<key>:{$lte:<value>}}

db.COLLECITON_NAME.find({"age": {$lte:3}}).pretty()

SQL : WHERE age <= 3;

...

Not Equals {<key>:{$ne:<value>}}

db.COLLECTION_NAME.find({"age":{$ne:3}})

SQL : WHERE age != 3;

7. update()

db.COLLECTION_NAME.update(SELECTION_CRITERIA, UPDATED_DATE)

db.animals.update({"name":"coffee"},{$set:{"name":"Mocha"}})



8. save() : 새문서로 기존문서를 덮어씌움, 해당 id값에대해 새로운 속성을 생성가능 update는 있는 속성을 수정

db.COLLECTION_NAME.save({ _id:ObjectID(), NEW_DATA})

db.animals.save({ "_id":ObjectId("5a444f2b11a9b9b50f834f9d"), "name":"latte", "color":"white"})

9. remove()

db.COLLECITON_NAME.remove(DELLETION_CRITERIA)

db.animals.remove({"name":"Mocha"})

db.animals.remove({"name":"Mocha"}, 1) //같은 데이터의 가장 상위 데이터에서 1개만 지움

db.animals.remove({ }) //모두 삭제

10. find() **프로젝션

db.COLLECTION_NAME.find({ },{KEY:1})

db.members.find({ }, {"gender":0}) //gender를 제외하고

db.members.find({ }, {"salary":1})

db.members.find({ }, {"member.gender":1}) //member.gender 를 포함


11. limit()

db.COLLECTION_NAME.find().limit(NUMBER)

db.members.find().limit(2)


12. skip()

db.COLLECITON_NAME.find().skip(NUMBER)

db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)

db.members.find().skip(2)

db.members.find().limit(2).skip(2)


13. sort()

db.COLLECTION_NAME.find().sort({key:SORT_NUMBER})

  db.members.find().sort({"age":1})

db.members.find({ }, {"age":true, _id:false}).sort({"age":-1}) 

db.members.find({ }, {"age":1, _id:0}).sort({"age":-1})


 

반응형

'SKILL > DATABASE' 카테고리의 다른 글

자바 jdbc 설정  (0) 2017.12.31
몽고DB homebrew를 통한 설치 for MAC  (0) 2017.12.31
몽고db 2일차  (0) 2017.12.29
쿼리 연습  (0) 2017.12.26
MySql 문제  (0) 2017.12.22