본문 바로가기
IT/MongoDB

[10일차] MongoDB 정리본

by GWLEE 2022. 7. 1.

 

RDB

NoSQL 개념이 따로 있는게 아니라

영어로 보면 one is red , others blue

Select 이런걸  사용하지 않는 모든게 noSQL

영역이 따로 있는게 아니고

나머지를 포함시킨다.

EX)

    -  humongous(거대한)에서 나온,, MongoDB - 분산, documents 최적화

  • Redis
  • HDB(입력기반빠르게 처리)

 

다 제각각…

 

 

  • 10gen
  • Cafe24 리눅스 플랫폼을 서비스 도메인 구입 대행 제공  - PaaS

서비스형 플랫폼….

 

2000년대 => 양이 어마어마하다

고객들의 데이터 증가..

자체 개발 설계

데이터는 늘어나니깐 물리적으로 한개의 서버 정착 불가능

물리적으로 여러 머신의 데이터

 

mongoDB

Sharding 기법 여러 데이터베이스를 나눠서 관리

어떤 키값을 나눠서 계산

문서 document 데이터를 다루는 회사가 많다.

Document 저장하고 끄집어내는

 

SQL 좋아하지 않으면

mongoDB 서버가 떠있다고 치고

언어별로 접근할 있는 라이브러리를 제공

Java class 메소드

Python 함수를 불러다가 쓴다.

해당언어 드라이버

파이썬 함수를 제공

mongoshell

Javascript shell 드라이버도 이미 개발

Javascript

 

  • document : row  document 모인게 collection
  • Collection : table
  • _id : primary key pk이름은 고정

 

 

JSON 타입 JAVA SCRIPT OBJECT NOTATATION

몽고는 json 똑같지는 않아서 JSON LIKE 타입으로 쓴다.

KEY , VALUE

 

 

  • {"greeting" : "Hello, world!"}
  • {"greeting" : "Hello, world!", "foo" : 3}
  • type-sensitive
  • {"foo" : 3}
  • {"foo" : "3"}
  • Cas-sensitive
  • {"foo" : 3}
  • {"Foo" : 3}
  • Document 내의 key/value 쌍은 순서를 가짐
  • {"x" : 1, "y" : 2} {"y" : 2, "x" : 1} 서로 다름
  • 서로 다른 순서니깐 다르다..

 

 

  1. Collection
  • Dynamic schemas
  • 서로 다른 shape 가지는 documents {"greeting" : "Hello, world"}
  • {"foo" : 5} 하나의 collection 저장될 있다.
  • Any document can be put into any collection.

 

 

  1. 네임스페이스 사용

db : cms

collection : blog.posts

blog.posts collection 네임스페이스는 cms.blog.posts

네임스페이스 길이는 121bytes 제한

 

 

  1. 예약된 database
  • Admin

Root database

   - local

   This database will never be replicated and can be used to store

   Any colloections that should be local to a single server

   - config

   Sharding 구현되었을 , 데이터베이스 구성 정보를 저장하는 용도

 

CRUD : create read update delete

Sql : insert select update delete

 

 

 

 

Post document

Document collection 넣어보자

 

Db.blog collection 이름

 

 

 

배열안에 document 들어가 있는

 

처음 하나만 나오는 findOne

 

 

기존에 있는걸 update comments 넣어준다.

 

Delete 지우는거 -> 지우고 찾으면 null..

 

 

 

< MongoDB 주요 Data Types>
        1. null
        Null can be used to represent
both a null value and a nonexistent field:  해당 필드의 값이 null or 해당 필드값 존재안해서 null
        
{"x" : null}
        
        2. boolean
        There is a boolean type, which can be used for the values true and false:
          javascript에서는 T F 소문자
        {"x" : true}
소문자 주의
        
        3. number
        The shell defaults to using 64-bit floating point numbers. Thus, these numbers look
normal in the shell:  64타입으로 이루어진 실수를 쓴다.
        {"x" : 3.14}
내부적으로 3.14 사용

        or:
        {"x" : 3}

        
        For integers, use the NumberInt or NumberLong classes, which represent 4-byte or 8-byte signed integers, respectively.
        {"x" : NumberInt("3")}
        {"x" : NumberLong("3")}

 

bit byte

컴퓨터는 0 1 구성

 

Bit * 8 = Byte

 

0 1

 

2bit

0 0 = 0

0 1 = 1

1 0 = 2

1 1 = 3

 

0 ~ 2^1-1

0~3

 

0~2^2-1

 

               

 

 

        
        4. string
        Any string of UTF-8 characters can be represented using the string type:
        {"x" : "foobar"}
        
        5. date
        Dates are stored as milliseconds since the epoch. The time zone is not stored:
        {"x" : new Date()}
        
        6. regular expression
        Queries can use regular expressions using JavaScript
s regular expression syntax:
        {"x" : /foobar/i}
        
        7. array
        Sets or lists of values can be represented as arrays:
        {"x" : ["a", "b", "c"]}
        
        arrays can contain different data types as values
        {"things" : ["pie", 3.14]}
        
        8. embedded document  #
document 안에 document
        Documents can contain entire documents embedded as values in a parent document:
        {"x" : {"foo" : "bar"}}
        
        {
                "name" : "John Doe",
                "address" : {
                "street" : "123 Park Street",
                "city" : "Anytown",
                "state" : "NY"
                }
        }
        
        
        9. object id
        An object id is a 12-byte ID for documents.
        {"x" : ObjectId()}
        
        10. binary data
통과
        Binary data is a string of arbitrary bytes. It cannot be manipulated from the shell.
        Binary data is the only way to save non-UTF-8 strings to the database.

 

 

        
        11. code
함수 정의
        Queries and documents can also contain arbitrary JavaScript code:
        {"x" : function() { /* ... */ }}

 

 

Help 호환성있게 사용

 

 

 

 

계정 생성

 

계정 json열기 해서 추가하기

 

 

 

 

 

Studio 3T

 

 

 

       
       
   




     

2. Updating Documents

- UpdateOne, UpdateMany 는 첫번째 인자로 필터를 받으며, 두번째 인자로 변경될 documents의 내용을 받는다.

- replaceOne은 첫번째 인자로 필터를 받으며, 두번째 인자로 대치할 document내용을 받는다.

 

  • 만약, 2개 이상의 update가 특정 document에 동시에 전달 될 때는 먼저 서버에 도착한 update 내용이 반영되고 다음 도착한 내용이 뒤이어 적용된다. 결국, 마지막 전달된 내용이 최종적으로 반영된다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'IT > MongoDB' 카테고리의 다른 글

[12일차] MongoDB 정리본  (0) 2022.07.05
[12일차] MongoDB  (0) 2022.07.05
[11일차] MongoDB 정리본  (0) 2022.07.04
[11일차] Studio 3T for MongoDB  (0) 2022.07.04
[10일차] MongoDB  (0) 2022.07.01

댓글