본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


몽고DB11

[Springboot] Mongotemplate 에서 _class 제거 자바 기반의 몽고템플릿 라이브러리를 사용하면 데이터를 저장하거나 수정 할 때 "_class" 필드 항목이 저장하는 클래스 패키지명과 함께 항상 생기고는 합니다. 아래 사진처럼 패키지명과 클래스 이름이 그대로 저장되어 깨림찍 하지 않을 수 없습니다. 몽고템플릿에서는 데이터를 매핑 할 때 주어진 클래스 의 패키지와 이름을 넣도록 기본설정이 되어 있습니다. 해당 기능을 끄기 위해서는 application.properties 에서는 할 수 없으며, 따로 빈 객체를 생성해야 합니다. 위 내용에 해당되는 코드 입니다. * 몽고컨피그.class import org.springframework.beans.factory.BeanFactory; import org.springframework.context.annotati.. 2023. 4. 25.
Nestjs 프레임워크 서버(Mongodb, database) -14 비관계형 데이터베이스 중 몽고DB는 제가 비관계형 데이터베이스에서 가장 좋아하는(?) 데이터 베이스 입니다. 무료에다 성능 또한 훌륭하기 때문 입니다! 얼마전 데이터베이스 인기순위에서도 1등(비관계 중)을 한 것을 볼 수 있었습니다. * 기준 : 2022.09 Nestjs에서 Mongodb를 사용하기 위해서는 역시나 모듈을 설치해야 합니다. Express 프레임워크에서부터 널리 사용 하는 몽구스(mongoose)를 설치 해 줍니다. npm install @nestjs/mongoose mongoose #1. 도큐먼트(모델, 스키마) 생성 도큐먼트란 데이터를 매핑하기 위한 ORM의 첫번째 단계 입니다. 시퀄라이즈에서의 모델을 만들어 준 것 처럼 동일한 방식으로 클래스를 만들어야 합니다. 특히 몽고db같은 경.. 2022. 9. 16.
몽고DB에서의 Aggregate 사용시 lookup과 인덱스(index) 몽고db에서도 관계형 데이터베이스와 마찬가지로 인덱스(색인)을 지원 합니다. 인덱스를 만드는 방법은 전용 DMBS인 몽고DB 콤파스를 활용하거나 명령어를 통해서 생성 할 수 있습니다. 아래와 같이 인덱스를 만들었다고 가정하여 봅니다. db.컬렉션.createIndex( { "ADDRESS": 1, "PHONE_NUMBER":1 } ) 위 내용을 보아하면 ADDRESS와 PHONE_NUMBER라는 필드에 인덱스를 만든 것으로 볼 수 있습니다. 위에 선언한 인덱스를 사용해 보도록 하겠습니다. findOne, findAll 등 이러한 함수를 동작 시킬 때 ADDRESS나 PHONE_NUMBER로 조건을 주어 검색한다면 색인 사용여부가 증가하게 됩니다. 색인 사용여부가 증가하였다는 것은 인덱스가 정상적으로 참조.. 2020. 6. 23.
Mongotemplate에서 MongoDB 증감 연산자 사용과 기타 다른 update 연산자 몽고템플릿을 사용하여 몽고DB에 있는 숫자형태(Int) 값을 증감시키는 방법을 소개합니다. 일반 관계형 데이터베이스에서는 증감하는 방법이 어렵지 않았습니다. 예를들어 특정한 컬럼의 데이터를 1 만큼 증가시키려면 아래와 같은 쿼리문을 동작하면 가능했습니다. Update test_db set number = number + 1; 몽고DB에서도 이와 같은 기능이 존재합니다. 바로 inc라는 업데이트를 위한 연산자 입니다. 이러한 기능은 몽고템플릿에서도 동일하게 제공 됩니다. 바로 내용을 살펴보겠습니다. 1. 숫자형 필드에서의 데이터 증감방법 아래와 같은 데이터가 존재합니다. 해당 데이터에서 number값을 증감 할 수 있는 메소드를 만들어 보겠습니다. private void numberChange(MongoT.. 2020. 5. 14.
Node.js mongoose Aggregate mongoose에서의 몽고db의 집계함수 실행은 mongodb에서의 쿼리와 형태가 거의 같다. 또한 java와 python과의 속도 비교에서도 거의 비슷하다. var mongoose = require("mongoose"); var Schema = mongoose.Schema; // Connection URL var url = 'mongodb://127.0.0.1:27017/admin'; mongoose.connect(url, { useNewUrlParser: true }); //옵션 파라미터는 몽고db버전에 따라 다르다 var structor = new Schema({ "date":Date, "random_text1" : String, "random_text2" : String }); structor.s.. 2019. 8. 1.
몽고db 특징 간단 정리 (버전은 3.x.x 이하) 1. 데이터를 모델화 하여 관리 - DB -Database는 Collection들의 물리적인 컨테이너. 각 Database는 파일시스템에 여러파일들로 저장. 2. MongoDB 는 이러한 스키마가 사전에 정의되지 않아도 된다 (Schemaless) - 데이터베이스에 저장된 Document는 각기 다른, 다양한 필드를 저장 할 수 있다. - 각 필드는 서로 다른 데이터타입을 가질 수 있다. 3. 하나의 row에 하나의 Document를 저장한다. 4. 다른 No-sql과 달리 강력한 쿼리 기능을 지원한다. 5. RDBMS인 MySQL에서 지원하는 대부분의 인덱스를 지원한다. 6. Collection의 사이즈를 고정할 수 있으며 , 큐 처럼 동작한다. 7. 컬렉션과의 Join 불가능하다. Join을 사용하고.. 2019. 7. 31.