You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
여기에 mongosh이라는 클라이언트 툴이 있고 압축을 풀고 설치하면 명령어는 책의 내용과 동일하게 입력해 볼 수 있다.
MongoDB가 설치된 Server 폴더 경로에 다운로드 한 mongosh을 풀고 실행하면 다음과 같이 나온다. 물론 서버는 동작하고 있어야 한다.
DB 버전을 확인하고 나오는 명령어
데이터베이스 생성
show dbs를 사용해 예제 데이터베이스 확인
admin: 보안과 관리 정보 저장
local: 인스턴스에 필요한 데이터를 저장
새로운 db인 microservices 생성 후 db 변경
책의 설명에는 createCollection으로 컬렉션을 만든 후 데이터를 추가하기 전까지는 실제로 컬렉션을 만들지 않는다고 나와 있지만,
실제 해보면 db와는 달리 컬렉션은 데이터를 넣지 않아도 만들어진 걸 볼 수 있다.
insert, insertMany 명령을 통해 데이터를 추가
명령 사용
find 명령을 사용해 데이터를 확인
update 명령으로 컬렉션에 문서 하나를 업데이트
책의 설명과 달리 실제 update()를 호출해 보면 deprecated 되었다고 안내해 준다.
그래서 updateOne()을 호출하면 atomic operator가 필요하다고 알려주는데
MongoDB 문서를 찾아보면 "$set" 이라는 명령어를 통해 업데이트 할 데이터를 지정해 줘야 한다.
remove 명령을 사용해 문서 삭제
역시 책의 내용과 달리 remove()를 호출하면 deprecated 되었다고 알려주고 deleteXXX()를 호출하라고 안내해 준다.
하지만 에러는 나지 않았으므로 실제 삭제는 된다.
다시 삭제한 데이터를 추가한 후에 deleteOne() 명령으로 삭제해 보면 안내 메시지 없이 삭제가 이루어진다.
find()를 호출할 때 매개 변수를 사용해 결과를 필터링하거나 찾을 수 있다.
정규식을 사용해서 문서를 찾을 수도 잇다.
아래 정규식은 대소문자를 무시하고 이름에 spring이 포함된 데이터를 찾는다.
The text was updated successfully, but these errors were encountered:
5-1 NoSQL 데이터베이스
마이크로서비스가 블로킹 오퍼레이션을 사용해 데이터를 쿼리해야 하는 경우에는 리액티브 프로그래밍의 이점을 잃게 되므로 스프링 프레임워크와 스프링 데이터는 대부분 최신 데이터베이스를 위한 리액티브 기능을 제공한다.
NoSQL 데이터베이스인 몽고DB를 통해 완벽하게 통합된 신속한 넌블로킹 리액티브 마이크로서비스를 제공할 준비를 한다.
NoSQL 데이터베이스는 마이크로서비스에 쉽게 통합될 수 있기 때문에, 몽고DB를 마이크로서비스에서 요구하는 데이터의 저장소로 사용할 수 있는 방법을 알아본다.
SQL 데이터베이스란
SQL 데이터베이스에서 데이터는 테이블 형식으로 구성된다. 데이터베이스의 컬렉션을 표현하는 테이블을 여러 개 가지고 있으며, 각각의 테이블에는 이들을 정의하는 칼럼 세트가 있다. 칼럼은 저장할 수 있는 데이터의 종류와 같은 속성을 가질 수 있다.
각 테이블에는 각 컬렉션의 항목을 나타내는 행이 있다. 테이블에는 인덱스 또는 키와 같은 속성이 있어서 테이블에서 특정 요소를 검색하거나 가리킬 수 있다. 테이블은 다른 테이블의 요소들을 연결하는 관계relationsship를 가질 수 있다.
모든 테이블 , 칼럼, 관계는 데이터 모델의 견고하고 엄격한 정의인 데이터베이스 스키마를 나타낸다.
SQL 데이터베이스의 주요 문제점 중 하나는 확장성이며, 이는 이런 관계나 스키마를 쉽게 분리할 수 없기 때문이다.
데이터베이스에 더 많은 테이블, 관계, 종속성이 있는 경우 기하급수적으로 복잡해진다.
NoSQL 데이터베이스란
NoSQL 데이터베이스에서는 정보를 테이블 형태로 표현하는 대신 다른 방식으로 배열한다. 전체적인 컨셉은 데이터가 자유롭게 변경될 수 있는 느슨한 스키마를 갖는 것이다.
NoSQL 데이터베이스에서 데이터를 정렬하는 방법은 문서 기반document-based이 가장 일반적이다.
데이터의 분할은 복잡한 문제는 아니게 되지만 검색의 효율성을 높일 필요가 있다. 서로 다른 데이터 집한 간에 관계를 유지하는 것과 같은 매커니즘을 구현하는 것은 쉬운 일이 아니다.
몽고DB 설치
데이터베이스 서버 시작
listening port 27017
Mongo 클라이언트 연결
책의 내용에는 mongod와 같은 경로에 mongo가 있다고 나와 있는데
실제로는 mongod만 있고 mongodb client는 별도로 설치해야 한다.
https://www.mongodb.com/try/download/shell
여기에 mongosh이라는 클라이언트 툴이 있고 압축을 풀고 설치하면 명령어는 책의 내용과 동일하게 입력해 볼 수 있다.
MongoDB가 설치된 Server 폴더 경로에 다운로드 한 mongosh을 풀고 실행하면 다음과 같이 나온다. 물론 서버는 동작하고 있어야 한다.
DB 버전을 확인하고 나오는 명령어
데이터베이스 생성
show dbs를 사용해 예제 데이터베이스 확인
새로운 db인 microservices 생성 후 db 변경
책의 설명에는 createCollection으로 컬렉션을 만든 후 데이터를 추가하기 전까지는 실제로 컬렉션을 만들지 않는다고 나와 있지만,
실제 해보면 db와는 달리 컬렉션은 데이터를 넣지 않아도 만들어진 걸 볼 수 있다.
insert, insertMany 명령을 통해 데이터를 추가
명령 사용
find 명령을 사용해 데이터를 확인
update 명령으로 컬렉션에 문서 하나를 업데이트
책의 설명과 달리 실제 update()를 호출해 보면 deprecated 되었다고 안내해 준다.
그래서 updateOne()을 호출하면 atomic operator가 필요하다고 알려주는데
MongoDB 문서를 찾아보면 "$set" 이라는 명령어를 통해 업데이트 할 데이터를 지정해 줘야 한다.
remove 명령을 사용해 문서 삭제
역시 책의 내용과 달리 remove()를 호출하면 deprecated 되었다고 알려주고 deleteXXX()를 호출하라고 안내해 준다.
하지만 에러는 나지 않았으므로 실제 삭제는 된다.
다시 삭제한 데이터를 추가한 후에 deleteOne() 명령으로 삭제해 보면 안내 메시지 없이 삭제가 이루어진다.
find()를 호출할 때 매개 변수를 사용해 결과를 필터링하거나 찾을 수 있다.
정규식을 사용해서 문서를 찾을 수도 잇다.
아래 정규식은 대소문자를 무시하고 이름에 spring이 포함된 데이터를 찾는다.
The text was updated successfully, but these errors were encountered: