No SQL
- No SQL : 데이터를 행과 열이 아닌 방식으로 저장
- 특징
- 정형화되지 않은 많은 양의 데이터를 처리할 때 효율적
- 확장시 수평적으로 확장되는데, 저장공간을 최대한 활용할 때 효과적
- 스키마를 준비할 필요가 없으므로 빠르게 서비스를 제작하고, 데이터 구조를 자주 업데이트 해야할 경우 효율적
- MongoDB : No SQL document DB
- 특징
- 고유한
"_id"
필드값이 있어야 한다.
- 보통은 ObjectId type (12byte, 24char)로 사용
- 저장은 BSON형태로 되고 출력은 JSON으로 된다
| JSON | BSON |
---|
Import | mongoimport | mongorestore |
Export | mongoexport | mongodump |
CRUD (create, read, update, delete)
- C - Insert : Index순서대로 작업
insert({
"_id":ObjectId("5x8ececea1sadsa2ds3f5dsaf564"),
"city":"Austria",
"zip":"35034",
"loc":{
"y":47.33,
"x":13.33
},
"pop":3062,
});
use DB;
show Collections;
DB.collection_name.find({"city":"Austria"});
DB.collection_name.find({"city":"Austria"}).count();
DB.collection_name.findOne({"_id":ObjectId("5x8ececea1sadsa2ds3f5dsaf564")})
DB.collection_name.updateOne({"zip":"35034"},{"$push":{"CapitalCity":"Vieena"}});
DB.collection_name.updateMany({"zip":"35034"},{"$inc":{"pop":10}});
DB.collection_name.deleteOne({"_id":ObjectId("5x8ececea1sadsa2ds3f5dsaf564")});
DB.collection_name.deleteMany({"zip":"35034"});
DB.collection_name.drop()
연산자
= | $eq |
---|
≠ | $ne |
> | $gt |
≥ | $gte |
< | $lt |
≤ | $lte |
{Field_name:{Operator:Value}}
$and | 모든 조건과 일치하는가 |
---|
$or | 조건 중 하나라도 일치하는가 |
$nor | 모든 조건과 일치하지 않는가 |
$not | 조건과 일치하지 않는가 |
{Operator : [{Statment},{Statment} ...]}
{$not:{Statment}}
- 표현 연산자
- $expr
- 집계표현식을 사용할 때
- 변수와 조건문을 사용할 때
- 같은 document내에 field들을 비교할 때
{$expr : {Expression}}
- 배열 연산자
- $push : 배열의 마지막위치에 엘리먼트를 넣으며 필드에 사용할 경우에는 필드의 타입을 배열로 변경