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 |