라벨이 몽고DB인 게시물 표시

Docker MongoDB Container 생성하고 사용하기

이미지
 보통 MongoDB를 셋팅하는데 많이 귀찮습니다. 특히 MongoDB를 처음 셋팅할때는 자료들을 찾아봐야 합니다. 위 작업은 기본적으로 Docker가 설치되 있어야 합니다. 설치방법은 아래 링크를 참고해 주시기 바랍니다. 링크 : docker install by terminal : ubuntu 20.04 공식 MongoDB Image 사이트 : https://hub.docker.com/_/mongo 1) 도커 컨테이너로 MongoDB생성하기 - MongoDB 이미지를 이용하여 NoSQL 컨테이너를 만들기 $ docker run --name [컨테이너 이름] -p [지정할 포트]:27017 -e MONGO_INITDB_ROOT_USERNAME="[유저이름]" -e MONGO_INITDB_ROOT_PASSWORD="[비밀번호]" -d mongo:[테그] copy 만약 처음 셋팅한다면 위 사진과 같이 도커에서 이미지를 다운을 받을 것입니다.  이제 컨테이너가 구동이 되면 위 사진과 같이 돌아가는것을 확인할수 있습니다. 2) 도커 컨테이너로 접속하기(바로 mongosh로 접속) - MongoDB 컨테이너에 접속하기(mongosh) : admin mongosh mongodb://[username]:[password]@[ip address]:[port]/admin copy 위 방법으로 mongosh를 이용하여 mongoDB에 접속을 할수 있습니다. 하지만 mongosh가 local에 설치해야 한다는 문제가 있습니다. 이때는 docker container로 접속해서 직접 mongosh를 실행하는 방법이 있습니다. 3) 도커 컨테이너로 접속하기(컨테이너로 접속후 mongosh로 접속하기) - 해당 컨테이너에 접속 docker exec -it [컨테이너 이름 또는 id] bash copy - 접속한 컨테이너에서 mongosh를 실행하여 mongodb에 접속 mongosh mongodb...

NestJS MongoDB 사용하기4- DB Update Delete

 안녕하세요. 알렉스입니다. 저번 포스팅에 이어 이번에는 MongoDB에 CRUD기능중 Update, Delete을 넣도록 하겠습니다. 처음 들어오셨다면 이전글을 참고해 주시기 바랍니다. 이전글 : NestJS MongoDB 사용하기3 - DB Create Read // src/users/dto/update-user.dto.ts import { ApiProperty , PartialType } from '@nestjs/swagger' ; import { IsEmpty , IsString } from 'class-validator' ; import { CreateUserDto } from './create-user.dto' ; export class UpdateUserDto extends PartialType ( CreateUserDto ) { @ IsString () @ IsEmpty () @ ApiProperty ({ readOnly : true , }) id : string ; } 코드1) UpdateUserDto 작성 코드1에서 id를 다시 정의한 이유는 'extends PartialType'이 CreateUserDto이기 때문입니다. id는 필수값으로 넣어야 하는에 업데이트 할때는 파라메터로 넣기 때문에 필수가 아닙니다. 따라서 재 설정을 하여 id는 비어도 class-validator에서 걸리지 않도록 수정한 것입니다. // src/users/users.service.ts import { Injectable , NotFoundException } from '@nestjs/common' ; import { InjectModel } from '@nestjs/mongoose' ; import mongoose from 'mongoose' ; import { CreateUserDto ...

NestJS MongoDB 사용하기3- DB Create Read

이미지
 안녕하세요. 알렉스입니다. 저번 포스팅에 이어 이번에는 MongoDB에 CRUD기능을 넣도록 하겠습니다. 처음 들어오셨다면 이전글을 참고해 주시기 바랍니다. 이전글 : NestJS MongoDB 사용하기2 - DB 스키마 생성 // src/users/dto/create-user.dto.ts import { ApiProperty } from '@nestjs/swagger' ; import { IsInt , IsNotEmpty , IsObject , IsOptional , IsString , Max , Min , } from 'class-validator' ; export class CreateUserDto { @ IsString () @ IsNotEmpty () @ ApiProperty ({ description : '유저 고유ID' , type : String , example : 'abc123' , }) id : string ; @ IsString () @ IsNotEmpty () @ ApiProperty ({ description : '유저 이름' , type : String , example : 'alex' , }) name : string ; @ IsString () @ IsNotEmpty () @ ApiProperty ({ description : '유저 전화번호' , type : String , example : '01035451268' , }) mobile : string ; @ IsInt () @ Min ( 20 ) @ Max ( 99 ) @ IsNotEmpty () @ ApiProperty ({ description : ...

NestJS MongoDB 사용하기2 - DB 스키마 생성

이미지
 안녕하세요. 알렉스입니다. 이번에는 NestJS을 이용하여 MongoDB의 스키마를 작성해서 collection을 만드는 글을 작성할려고 합니다.  mongodb셋팅은 이전글을 참고해 주시기 바랍니다. 이전글 : NestJS MongoDB 사용하기1 - DB 접속 이제 NestJS안에 users resource를 생성하도록 하겠습니다. NestJS resource 패키지 생성 NestJS CLI를 이용하여 controller, service, dto, entity를 자동으로 생성 $ nest g res copy 사진1) 생성할 resource 명칭 입력(users입력) 사진2) layer선택(REST API) 사진3) CRUD자동 생성 유무(Y) 사진1 ~ 3까지 진행하면 src폴더 안에 users이 생성된 것을 확인할수 있습니다. 먼저 /src/users/entities 폴더를 삭제하고 대신 schemas폴더를 생성합니다. 그리고 그안에 user.schema.ts 파일을 생성하고 아래와 같이 코드를 작성합니다. // src/users/schemas/user.schema.ts import { Prop , Schema , SchemaFactory } from '@nestjs/mongoose' ; @ Schema ({ timestamps : true , // document 작성시 시간 기록 }) export class Users { @ Prop () // 유저 id id : string ; @ Prop () // 유저 이름 name : string ; @ Prop () // 유저 전화번호 mobile : string ; @ Prop () // 유저 나이 age : number ; @ Prop ({ type : 'Array' }) // 유저 취미 hobby : string []; @ Prop ({ type : 'Object' })...

몽고DB사용하기 by Web(Atlas)

이미지
 안녕하세요. 알렉스 입니다. 이번에는 NoSQL의 MongoDB를 사용할수 있게 셋팅을 하겠습니다. 일단 기본적으로 'https://account.mongodb.com/account/login'링크에 들어가서 가입을 하셔야 합니다. 가입이 완료된 이후 셋팅법을 알려드리도록 하겠습니다. 로그인을 하면 처음 프로젝트 카테고리가 나타납니다. 갓 생성한 계정이니 프로젝트가 존재하지 않습니다. 일단 'New Project'버튼을 눌러 새로 생성합니다. 저는 임시적으로 'test'라는 프로젝트명을 사용하겠습니다. 위의 사진은 해당 프로젝트에 유저를 추가할것인지의 여부입니다. 일단 여기서는 혼자 하는 것이기 때문에 'Create Project'를 하도록 하겠습니다. 이제 프로젝트가 완성됬습니다. 이제 데이터베이스를 만들 차례입니다. 데이터베이스는 SQL이나 NoSQL이나 비슷한 개념입니다. 결국 데이터베이스 안에 데이터를 넣기 때분입니다. 연습용이기 때문에 'free'를 선택해 줍니다. 원하는 서비스 및 리전을 선택합니다. 몽고디비에서 해당 데이터베이스의 명칭을 지정할수 있습니다. 여기서는 'Cluster0'으로 자동생성 됬습니다. 물론 바꾸셔도 되지만 저는 그대로 가도록 하겠습니다. 이제 'Create Cluster'을 누르면 위와같이 데이터 베이스를 생성하게 됩니다. 시간상 약 3~10분정도 걸립니다.  Terminal에서 몽고DB에 접속하기 위한 아이디와 비밀번호를 지정합니다. 데이터 베이스 유저가 작성이 되면 이제 'Choose a connection method'를 클릭합니다.  위 글에서는 Terminal로 접속할 것이 때문에 첫번째(Connect with the MongoDB Shell)항목을 선택합니다. 만약 해당 컴퓨터에 MongoDB Shell이 설치되 있지 않는다면 설치하시고 진행해 주시기 바랍니다. 이미 설치가 되 있으면 'I h...