6.1 도큐먼드 업데이트

1 . MongoDB에서 업데이트를 하려면 두 가지 방법을 사용할 수 있다. 도큐먼트 전체를 대치하든지 아니면 도큐먼트 내의 특정 필드를 수정하기 위해 업데이트 연산자를 조합해서 사용할 수 있다.

```javascript user_id = BSON::ObjectId(“4c4b1476238d3b4dd5000001”) doc = @user.find_one({:_id => user_id})

     

목표

  • Mongodb 질의 연산자를 자세히 다뤄보자.
  • 맵-리듀스 함수를 중심으로 데이터에 대해 집계를 실행하는 방법을 살펴 보자.
     

4.1 스키마 설계 원리

  • “이론에 따라 스키마를 설계해야 하지만 실제에서는 이론을 융통성 있게 적용해야 한다.” (이에 따른 제기할수 있는 질답)
    • 데이터의 기본 단위는 무엇인가?
      • RDBMS에서는 행과 열로 이루어진 테이블이 있다. 키(값) 저장 시스템에서는 키와 값을 갖는데, 여기서 값은 비구조적이다. MongDB에서는 데이터 기본적 단위가 BSON도큐먼트다.
    • 데이터를 어떻게 쿼리하고 업데이트할 것인가?
      • RDBMS는 임의 쿼리와 조인이 특징. MongDB 또한 임의 쿼리를 허용하지만 조인은 지원하지 않는다. (간단한 키(값) 저장 시스템은 하나의 키에 대해서만 값을 가져올 수 있다.
      • MongDB는 트랜잭션을 지원하지는 않지만 복잡한 도큐먼트의 내부 구조에 대해 수행할 수 있는 원자적인 업데이트를 다양하게 지원한다.
      • 요점은 최적의 데이터 모델을 설계하려면 데이터베이스의 특징을 이해하고 있어야 한다는 것이다.
    • 애플리케이션의 액세스 패턴은 무엇인가?
      • 애플리케이션의 요구사항이 무엇인지 정확히 파악해야한다.
      • 읽기/쓰기 비율은 어떻게 되는가? 어떤 쿼리가 필요한가? 데이터는 어떻게 업데이트가 되는가? 동시성 문제는 어떻게 되는가? 데이터는 어느 정도로 잘 구조화할 수 있는가?
     

몽고디비 인 액션 Study


  • 스터디 기간 : 2016/11/20 ~ 12/11
  • 스터디 장소 : 서울대 입구역 AZ Story
  • 스터디원 : 노휘겸 / 박민규 / 이돈일 / 이지훈 / 신민수
  • 스터디비 : 30,000원
  • 한달 한번 결석 가능
  • 발표날 빠지면 영구 제명( 천재지변 / 경조사제외 )
  • 자기 발표 부분 Wiki에 정리
  • 1~3장 까지는 개인적으로 필히 읽어보고 올것

스터디 진행


11/20

     
  • 객체에서 가장 중요한 것은 인터페이스.
  • 이해와 사용이 쉬운 인터페이스를 작성하는 기술이야 말로 좋은 객체지향 소프트웨어 개발에 꼭 필요.
  • 인터페이스를 더 쉽게 만드는 리펙토링 기법을 설명 함.