NoSQL

이민기·2022년 2월 9일
0
post-thumbnail

No SQL

  • No SQL : 데이터를 행과 열이 아닌 방식으로 저장
    • 특징
      • 정형화되지 않은 많은 양의 데이터를 처리할 때 효율적
      • 확장시 수평적으로 확장되는데, 저장공간을 최대한 활용할 때 효과적
      • 스키마를 준비할 필요가 없으므로 빠르게 서비스를 제작하고, 데이터 구조를 자주 업데이트 해야할 경우 효율적
  • MongoDB : No SQL document DB
    • 특징
      • 고유한 "_id" 필드값이 있어야 한다.
        • 보통은 ObjectId type (12byte, 24char)로 사용
      • 저장은 BSON형태로 되고 출력은 JSON으로 된다
        JSONBSON
        Importmongoimportmongorestore
        Exportmongoexportmongodump

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,
});
  • R - Find
//기본으로 확인할 때
use DB;
show Collections;
//검색
DB.collection_name.find({"city":"Austria"});
//데이터 수 검색
DB.collection_name.find({"city":"Austria"}).count();
//특정 데이터 1개 검색
DB.collection_name.findOne({"_id":ObjectId("5x8ececea1sadsa2ds3f5dsaf564")})
  • U - Update
//기준에 맞는 첫 번째 데이터만 업데이트
DB.collection_name.updateOne({"zip":"35034"},{"$push":{"CapitalCity":"Vieena"}});
//기준에 맞는 모든 데이터 업데이트
DB.collection_name.updateMany({"zip":"35034"},{"$inc":{"pop":10}});
  • D- Delete , Drop
//기준에 맞는 첫 번째 데이터만 삭제
DB.collection_name.deleteOne({"_id":ObjectId("5x8ececea1sadsa2ds3f5dsaf564")});
//기준에 맞는 모든 데이터 삭제
DB.collection_name.deleteMany({"zip":"35034"});
//collection 삭제
DB.collection_name.drop()

연산자

  • 비교연산자
=$eq
$ne
>$gt
$gte
<$lt
$lte
    //연산자 사용
    {Field_name:{Operator:Value}}
  • 논리연산자
$and모든 조건과 일치하는가
$or조건 중 하나라도 일치하는가
$nor모든 조건과 일치하지 않는가
$not조건과 일치하지 않는가
    //연산자 사용
    {Operator : [{Statment},{Statment} ...]}
    //$not 사용
    {$not:{Statment}}
  • 표현 연산자
    • $expr
    • 집계표현식을 사용할 때
    • 변수와 조건문을 사용할 때
    • 같은 document내에 field들을 비교할 때
	//집계표현식을 이용할 때
	{$expr : {Expression}}
  • 배열 연산자
    • $push : 배열의 마지막위치에 엘리먼트를 넣으며 필드에 사용할 경우에는 필드의 타입을 배열로 변경
profile
블로그를 옮기는 중입니다. https://min71.dev

0개의 댓글