전체 글
-
[ MongoDB ] 컬렉션에서 field 이름 변경, 새로운 field 추가, 기존 field 삭제하는 방법Topic/Database 2023. 9. 2. 02:22
대량으로 MongoDB 컬렉션에서 키 이름을 변경하고, 새로운 키를 추가하고, 기존의 키를 삭제하려면 MongoDB의 업데이트 쿼리를 사용해야 합니다. 대량 변경을 수행하는 예시. 키 이름 변경: db.collection.updateMany({}, { $rename: { "name1": "name2" } }) 위의 쿼리는 collection을 대상으로 모든 문서에서 name1 필드를 name2로 변경합니다. 새로운 키 추가: db.collection.updateMany({}, { $set: { "name3": "value3" } }) 위의 쿼리는 collection을 대상으로 모든 문서에 name3 필드를 추가하고, 해당 필드에 "value3" 값을 할당합니다. 기존 키 삭제: db.collection...
-
[ MongoDB ] document의 field 이름 변경하는 방법Topic/Database 2023. 8. 19. 12:11
기존 document 예시 { "occupation":"Doctor", "name": { "first":"Jimmy", "additional":"Smith" } 요구사항 - additional의 이름을 last로 변경하고 싶다. 단순 변경하고 싶을 때 db.foo.updateMany({}, { $rename: { "name.additional": "name.last" } }, false, true); 속성을 포함하는 문서를 업데이트하고 싶을 때 db.foo.update({ "name.additional": { $exists: true } }, { $rename: { "name.additional": "name.last" } });
-
[ JS ] switch문에서 break를 if-else에서는 어떻게 사용할까 (feat. 조건부 로직)Topic/JavaScript 2023. 8. 12. 22:22
JavaScript에서 switch 문과 if-else 문은 조건부 로직을 처리하는 데 사용된다. switch 문에서 break 키워드는 현재 case를 종료하고 switch 블록을 빠져나오는 역할을 하는 반면에 if-else 문에서는 break 키워드를 사용하지 않는다. 대신 return 문을 사용하여 조건문을 종료하고 해당 함수 또는 블록을 빠져나온다. 다음은 switch 문과 if-else 문에서의 break와 return의 예시다. // switch 문에서의 break switch (value) { case 'case1': console.log('Case 1'); break; case 'case2': console.log('Case 2'); break; default: console.log('De..
-
[ NestJS ] mongoose에서 찾은 데이터 return 시 에러나는 이유Topic/Database 2023. 8. 5. 17:40
NestJS에서 MongoDB에서 찾은 모델을 그대로 반환하려고 할 때 에러가 발생하는 이유는 반환하려는 데이터의 형식이 일치하지 않기 때문입니다. NestJS는 일반적으로 DTO(Data Transfer Object)를 사용하여 데이터의 형식을 정의하고 유효성을 검사합니다. DTO를 사용하지 않고 MongoDB에서 찾은 모델을 그대로 반환하려는 경우, 해당 모델의 형식이 기본적인 JavaScript 객체(Object) 형태이거나 Mongoose 모델일 수 있습니다. 이 경우 NestJS에서 예상하는 형식과 일치하지 않으므로 오류가 발생합니다. 해결하는 방법으로는 만약 DTO를 사용하지 않고 MongoDB에서 찾은 모델을 그대로 반환하려는 경우, 데이터 모델을 직접 DTO로 변환해야 합니다. 일반적으로 ..
-
[ NestJS ] AWS SES 적용 오류Topic/Node.js | server 2023. 7. 29. 11:47
*잘못된 AccessKeyId로 접근했을 때 *잘못된 AccessKeyId로 접근했을 때 올바른 AccessKeyId로 요청할 때랑 잘못된 AccessKeyId로 요청할 때 에러가 다른 걸로 보아 코드 상에 문제라기보다 설정 방법이나 호스트 단에서 에러가 났을거라고 생각이 들어 자료를 찾아보았다. AWS SES를 이용하는 것중에 aws-sdk에 있는 ses를 사용해 transporter를 적용해도 되지만 근본적인 서비스인 nodemailer의 example을 보고 그대로 해보았다. import { BadRequestException, Injectable } from '@nestjs/common'; import * as nodemailer from 'nodemailer'; @Injectable() expo..
-
[ NestJS ] nodemailer로 메일 발송하기Topic/Node.js | server 2023. 7. 23. 10:45
NestJS 프레임워크에서 이메일 발송을 위한 nodemailer 라이브러리를 적용하는 방법입니다. nodemailer 사용 방법 nodemailer 설치 npm install nodemailer 환경변수 설정 (.env) # /.env email_host = "smtp.gmail.com" email_port = "777" email_client_id = '1234-abcd.apps.googleusercontent.com' email_secret = '1q2w3e4r' email_user = 'noreply@‘test.io email_address_from = 'help@test.io’ email_refresh_token = 'aaa' email_access_token = 'bbb' Mailer Serv..
-
[ NestJS ] firstValueFrom과 lastValueFrom의 차이 (feat. RXJS)Topic/Node.js | server 2023. 7. 15. 20:38
firstValueFrom과 lastValueFrom은 RxJS의 두 가지 함수로, 옵저버블(Observable)을 처리하는 방법에 차이가 있다. firstValueFrom firstValueFrom 함수는 옵저버블에서 첫 번째 값을 가져오는 함수이다. 옵저버블이 첫 번째 값을 방출하고 완료되면 해당 값을 반환한다. firstValueFrom은 첫 번째 값을 가져올 때까지 옵저버블의 완료 여부를 기다린다. 만약 옵저버블이 오류를 방출하면 firstValueFrom은 해당 오류를 전달한다. firstValueFrom 예시 import { firstValueFrom } from 'rxjs'; async function fetchData(): Promise { const observable = someServ..