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

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

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


몽고DB26

몽고 db에서의 특수문자 검색(Mongodb 특수문자)시 유의사항 몽고db에서 저장 되어있는 특수문자를 조건을 통해서 조회하는 방법입니다. 먼저 샘플 컬렉션 입니다. 일반적으로 몽고db와 관련된 DBMS나 콘솔에서는 아래 사진처럼 쉽게 가능 합니다. 도큐먼트의 name 속성에 대해서 "(주)" 가 있는 내용을 검색하여 보겠습니다. 어렵지 않는 내용입니다. 따로 안될것이라 생각하지도 않는 내용입니다. 그러면 위 내용을 토대로 Java에서 실행하여 보겠습니다. 같은 조건으로 검색했는데 값이 없습니다. 물론 값이 나오는 경우도 존재합니다만, 위와 같이 특수문자에 의해서 조건이 안되는경우가 있습니다. 또한 검색을 하는데 결과가 없는 것이 아니라 오류가 발생하는 경우도 존재 합니다. Java에서 replaceAll을 하는 경우에 종종 만나는 패턴과 관련된 오류 입니다. 사용한 .. 2020. 7. 29.
Java 몽고DB 파일 업로드 (Java mongodb file, Java mongodb fs) Java에서 몽고DB에 파일을 등록하는 방법 입니다. 몽고DB에서는 다른 데이터베이스와 마찬가지로 파일을 업로드 할 수 있게 해 주고 있습니다. 파일형태는 바이너리로 변환하여 컬렉션에 저장이 되며, 다른 정보도 포함하여 저장 할 수 있습니다. 대용량 파일 저장은 아쉽게도 지원하지 않으며 16메가바이트 이하의 파일을 업로드 할 것을 권장하고 있습니다. 파일 업로드 하는 방법입니다. GridFSBucket클래스와 GridFSUploadOptions클래스를 사용 하였습니다. private void insertFile() throws Exception{ Document doc = new Document("type","image"); doc.append("content_type", "image/png"); doc.. 2020. 7. 3.
몽고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 or연산자를 통한 질의문 만들기(MongoTemplate or query) 몽고 템플릿을 활용한 or가 필요한 질의문 작성 방법입니다. 아래와 같은 데이터베이스의 컬렉션이 존재한다고 하겠습니다. 일반적인 질의문은 number가 "조건" 이면, text가 "조건" 이면 이러한 방식으로 되어 있습니다. 그런데 간혹 1개의 도큐먼트를 대상으로 질의문이 여러개가 필요할 때가 있습니다. 예를들어 text의 값이 ab를 포함하고 있거나, ef를 포함하고 있거나 아니면 hi를 포함하고 있는 경우에 대한 질의문 입니다. 일반적으로 아래처럼 질의문을 작성하고 오류를 만나게 됩니다. ^^; 단순하게 직관적으로 보면 크게 문제가 없는 질의문인데 같은 도큐먼트 대상으로 위 사진처럼 질의를 하게되면 동작하지가 않습니다. 이럴 때 필요한 것이 Criteria 클래스에서 제공하여 주는 orOperator.. 2020. 6. 18.
Mongotemplate에서 MongoDB 증감 연산자 사용과 기타 다른 update 연산자 몽고템플릿을 사용하여 몽고DB에 있는 숫자형태(Int) 값을 증감시키는 방법을 소개합니다. 일반 관계형 데이터베이스에서는 증감하는 방법이 어렵지 않았습니다. 예를들어 특정한 컬럼의 데이터를 1 만큼 증가시키려면 아래와 같은 쿼리문을 동작하면 가능했습니다. Update test_db set number = number + 1; 몽고DB에서도 이와 같은 기능이 존재합니다. 바로 inc라는 업데이트를 위한 연산자 입니다. 이러한 기능은 몽고템플릿에서도 동일하게 제공 됩니다. 바로 내용을 살펴보겠습니다. 1. 숫자형 필드에서의 데이터 증감방법 아래와 같은 데이터가 존재합니다. 해당 데이터에서 number값을 증감 할 수 있는 메소드를 만들어 보겠습니다. private void numberChange(MongoT.. 2020. 5. 14.
Mongotemplate에서 배열값 관리 (Mongotemplate push, pull) * Mongotemplate Array, Mongotemplate 배열 몽고DB에서 데이터는 다양한 형태로 존재 합니다. 문자, 숫자, 배열, Json형태 등등 여러 형태가 자유롭게 존재합니다. 일반적으로 update라는 메소드를 통해서 몽고DB의 데이터를 변경 할 수 있습니다. 그런데, 만약에 내가 수정해야되는 데이터가 배열형태면 어떻게 해야 될 까요? 배열형태에 특정 데이터를 삭제하거나, 추가하려면 어떻게 해야 되는 것 일까요? 일반적인 방법은 해당 내용을 조회하여 배열 데이터를 가져온 뒤에 배열에서 필요한 내용을 제거하거나 추가한 뒤에 업데이트를 하곤 합니다. 아래 예를들어 보겠습니다. private MongoTemplate template; private void selectAndUpdate(){.. 2020. 5. 13.