전체 글 107

[MongoDB] MQL 기초 5 - 배열과 내장 Document를 다루는 방법 2 (Update)

❑ 공통 데이터 Insertdb.students.insertMany([ {_id: 1, grades: [85, 80, 80]}, {_id: 2, grades: [88, 90, 92]}, {_id: 3, grades: [85, 100, 90]}]) ❑ 배열의 값 변경하기 : $set[참고] $ : Positioning Operator 1. Array.$ : 배열 내 조건과 일치하는 첫 번째 element에 적용1.1. 배열 Element가 Value일 때 UpdateAS-IS){ _id: 1, grades: [85, 80, 80]}MQL)db.students.updateOne( { _id: 1, grades: 80 }, { $set: { "grades.$": 82 } })_id:1 이고, grades 배..

Back-End/MongoDB 2024.05.31

[MongoDB] MQL 기초 4 - 배열과 내장 Document를 다루는 방법 1 (Read)

1. 내장 Document 조회 (Inner Document)내장 Document는 Document 안에 필드가 Document인 것을 말한다.예시db.sales.findOne() 조회 결과{ ... customer : { gender:'M', age: 50, email:'hello@naver.com', satisfaction:5 } ...}Document를 조회한 결과 customer 필드는 Document를 갖고 있다. 이를 내장 Document라고 한다 조회방법 1. 내장 Document 전체를 filter로 적용내장 Document를 조회할 땐 filter에 해당 Document를 전부 명시해줘야 한다즉, 위의 customer를 조회하려면 다음과 같이 MQL을 써야한다.db.sales.findOn..

Back-End/MongoDB 2024.05.31

[MongoDB] MQL 기초 3 - 유용한 CRUD 쿼리 함수

1. Collection Method공식 DocumentCollection Methods Collection Methods - MongoDB Manual v7.0For details on a specific method, including syntax and examples, click on the link to the method's reference page.www.mongodb.com공식 Document에 아래에 소개한 쿼리 함수 외에도 find(), findOne() 같은 기본적인 함수부터 다양한 함수들이 소개되어 있다.생각보다 읽기 어렵지 않고, 가장 정확한 내용이므로 공식 문서를 보면서 익히는 연습을 하자 db.collection.bulkWrite()여러 개의 insert, update, de..

Back-End/MongoDB 2024.05.31

[MongoDB] SQL vs MQL 비교 문서

MQL = MongoDB Query LanguageMQL은 개발 언어처럼 함수 형태로 작성한다예: db.collection.find({}); SQL과 MQL 비교기본적인 것만 바로 참고할 수 있게 캡처함. 더 자세한 내용은 문서 들어가서 참고하기https://www.mongodb.com/docs/v7.0/reference/sql-comparison/ SQL to MongoDB Mapping Chart - MongoDB Manual v7.0In addition to the charts that follow, you might want to consider the Frequently Asked Questions section for a selection of common questions about Mong..

Back-End/MongoDB 2024.05.31

[MongoDB] Replica Set Local에 구축하기

1. Mongodb 커뮤니티 버전 설치1.1. 다운로드, 설치MongoDB: 애플리케이션 데이터 플랫폼 MongoDB: 개발자 데이터 플랫폼업계 최고의 최신 데이터베이스를 토대로 구축된 개발자 데이터 플랫폼을 사용해 아이디어를 더욱 빠르게 실현하세요. 공통 쿼리 인터페이스와 개발자들이 원하는 데이터 모델을 사용하는 동www.mongodb.com    제품 > 커뮤니티 에디션 클릭 Select package 클릭  다운로드 mongodb-macos-aarch64-7.0.6.tgz 파일을 압축 해제하면 MongoDB 설치가 된 것이다  1.2. 기본 세팅적절한 위치에 다음 폴더들을 생성한다mongodbmongodb/data : mongodb 인스턴스가 데이터를 저장시킬 위치mongodb/log : mongo..

Back-End/MongoDB 2024.05.31

[Java] JavaFX WebView에서 Axios, fetch 사용시 서버로 Body를 전달하지 못하는 문제

1. Trouble Java8의 JVM 환경에서 동작하는 JavaFX의 WebView에서는 Axios, fetch, Ajax 등의 기능을 제한적으로만 사용할 수 있어 Http Body를 넣을 수 없다 2. Root cause JavaFX의 WebView에서 제공하는 javascript 런타임 엔진은 JVM에 있다. 그리고 java 8버전의 javascript 런타임 엔진은 'Nashorn'이다. 문제는, Nashorn은 순수한 ES5.1 스펙(ECMAScript)을 구현한 순수 javascript 엔진이라는 점이다. 그렇기 때문에 Axios (ES6에 도입된 Promise 기반), fetch (ES6부터 내장 라이브러리), Ajax(XMLHttpRequest 기반이며 순수 javascript가 아님) 셋..

Back-End/Java 2023.03.28

[Java] lombok의 @Builder 사용시 필수 필드를 입력하게 하는 방법

Lombok의 @Builder를 사용해 빌더 패턴을 구현할 때, 특정 필드를 반드시 입력하도록 하는 필수 필드로 만들 수 있다. 방법1. @NonNull 애너테이션 사용하기 import lombok.Builder; import lombok.NonNull; @Builder public class Person { @NonNull private String name; @NonNull private Integer age; private String address; } 위의 코드에서 name과 age 필드는 @NonNull 애너테이션이 붙어 있기 때문에 필수 필드가 된다 따라서 Person.builder()를 호출할 때 이러한 필드를 지정하지 않으면 컴파일 오류가 발생함 Person.builder() .addre..

Back-End/Java 2023.03.14

[JavaScript] 객체를 병합하는 세 가지 방법 (Object merge)

1. Object.assign() 메서드 const object1 = {a: 1, b: 2}; const object2 = {c: 3, d: 4}; const mergedObject = Object.assign({}, object1, object2); console.log(mergedObject); // Output: {a: 1, b: 2, c: 3, d: 4} Object.assign() 메서드는 JavaScript에서 두 개의 객체를 병합하는 가장 간단한 방법이다. 두 개 이상의 객체를 인수로 전달하면, 모든 객체의 속성을 결합한 새 객체가 생성된다. 2. Spread operator '...' const object1 = {a: 1, b: 2}; const object2 = {c: 3, d: 4};..