책(200)
-
[Ch3] 도큐먼트 생성, 갱신, 삭제 (갱신 2)
3.2.2. Array Operator ◎ $push { $push: { : , ... } } 배열에 요소를 추가한다. 배열이 이미 존재하면 배열 끝에 요소를 추가하고, 존재하지 않으면 새로운 배열을 생성한다. Array.prototype.push랑 비슷한 느낌으로 돌아간다고 보면 됨. 블로그 게시물에 누가 댓글을 달면 DB에 반영해보자 let firstPost = db.blog.posts.findOne({ "title": "첫 번째 게시글" }); firstPost; { "_id" : ObjectId("62cd55dae195d477e64034df"), "title" : "첫 번째 게시글", "content" : "야한 생각 중입니다" } db.blog.posts.updateOne(firstPost, {..
2022.07.13 -
[Ch3] 도큐먼트 생성, 갱신, 삭제 (갱신 1)
3. 갱신 도큐먼트 갱신에는 크게 치환과 수정이 있다(각각 replaceOne / updateOne, updateMany ) 갱신은 원자적으로 이뤄지므로 갱신 요청 두 개가 동시에 발생하면 서버에 먼저 도착한 요청이 적용된 후 다음 요청이 적용된다. 만약 이러한 기본 동작이 마음에 들지 않으면 도큐먼트 버저닝 패턴 The Document Versioning Pattern을 고려하면 된다(9장에서 나올 예정) 3.1 replaceOne( filter, replacement, options ) 특정 도큐먼트를 다른 도큐먼트로 아예 대체시킨다. 이때 "_id"가 동일한 도큐먼트가 존재하지 않도록 주의해야 한다. 3.1.1. 직접 해보기 const temp = db.users.findOne({"name": "존..
2022.07.12 -
[Ch3] 도큐먼트 생성, 갱신, 삭제 (생성&삭제)
1. 도큐먼트 삽입 몽고 DB 3.0 이전 버전에선 insert란 함수를 이용해 삽입했었다. 그러나 현시점에선 과거의 유물 같은 놈으로 지금은 insertOne과 insertMany를 사용하고 있다. 1.1 insertOne( document, { writeConcern } ) 데이터를 추가하는 가장 기본적인 방법. "_id"값을 주지 않아도 자동으로 제공된다. 1.2 insertMany( [ document1, ... ], { writeConcern, ordered } ) 여러 도큐먼트를 컬렉션에 삽입시 사용한다. 단, 48MB보다 큰 메시지는 허용되지 않으며, 해당 크기 이상의 일괄 삽입시 여러 개로 분할한다. > db.movies.insertMany( [{ "title": "Ghostbusters"..
2022.07.12 -
[1장] 타입스크립트 알아보기(1/2)
타입스크립트는 인터프리터로 실행되는 것도 아니고(Python, Ruby) 저수준 언어로 컴파일되는 것도 아니다(Java, C) 고수준 언어인 자바스크립트로 컴파일되며, 실행 역시 자바스크립트로 이루어진다. TS의 타입 시스템도 독특한 특징을 가지는데, 몇 가지만 짚고 넘어가 보자. 1. TS/JS 관계 이해하기 아마 'TS는 JS의 superset이다' 라는 말을 들어봤을 것이다. 간단한 말이지만 사실 이 말이 정확히 무엇을 의미하는지, 그래서 둘의 관계가 정확히 어떻다는 건지 이해하는 게 생각보다 훨씬 중요하다. *superset : 수학에선 상위집합을 의미하며, 적당히 의역하자면 'JS는 TS의 부분집합이다'라는 뜻으로 받아들이면 된다 가. TS는 문법적으로 JS의 상위집합이다 아래 두 명제가 있다...
2022.07.11 -
[Ch2] 몽고DB 기본(2/3)
몽고 DB 인스턴스와 상호작용하는 자바스크립트 셸이다. 관리 기능이나 실행 중인 인스턴스 점검 및 간단한 기능 시험에 유용한데, 간단한 작업들에 대해 알아보자. 4.1. 몽고 DB 클라이언트 셸의 진수는 독자적으로 쓸 수 있는 몽고 DB 클라이언트다. 셸을 시작할 때 몽고 DB 서버의 test 데이터베이스에 연결하고, 데이터베이스 연결을 전역 변수 db에 할당한다. 셸에서는 이 변수를 통해 몽고 DB에 접근한다. 간단한 몇 가지 작업을 해보자. 현재 db에 할당된 데이터베이스 확인하기 > db test (셸 시작시 test데이터베이스에 연결하므로 tset가 출력된다) 데이터베이스 선택하기 > use video switched to db video (db 변수에 video 데이터베이스를 할당했다) db변수..
2022.07.11 -
[Ch2] 몽고DB 기본(1/3)
곧 설명하겠지만 아래와 같은 기본 개념들을 갖는다. 도큐먼트 : 몽고 DB 데이터의 기본단위이자 관계형 DB의 행과 유사한 역할 모든 도큐먼트는 컬렉션 내에서 고유한 특수 키인 "_id"를 가진다 컬렉션 : 동적 스키마가 dynamic schema가 있는 테이블과 유사 몽고 DB의 단일 인스턴스는 자체적인 컬렉션을 갖는 여러 개의 독립적인 데이터베이스를 호스팅 한다 몽고 셸이라는 도구와 함께 배포되는데, 몽고 DB 인스턴스 관리 및 쿼리 지원을 제공한다. 또한 몽고 셸은 그 자체로써 완전한 기능의 자바스크립트 해석기이다. 1. 도큐먼트 정렬된 키와 연결된 값의 집합으로 이뤄진다. 각 프로그래밍 언어의 기본 자료구조로 표현 가능한데, JS기준으론 객체로 표현된다. 1.1 도큐먼트 키 도큐먼트의 키는 문자열..
2022.07.10