mongoose(18)
-
Mongoose ($inc) Number 값을 자동으로 변환 하는 방법
배경 Number타입의 필드를 요청 당 설정 값으로 값을 올려야 할 때 해결방안 $inc 사용 사용방법 변경 값을 +2 하는 방법 Model.updateOne({ 조건 값 }, { $inc: { 변경해야하는 필드 : 2 } }); 변경 값을 -2 하는 방법 Model.updateOne({ 조건 값 }, { $inc: { 변경해야하는 필드 : -2 } }); 변경 값이 여러개 경우 Model.updateOne({ 조건 값 }, { $inc: { 변경해야하는 필드1 : -2, 변경해야하는 필드2 : 3 } });
2024.01.13 -
Mongoose ($addToSet) 배열 필드에 중복 되지 않는 데이터 넣는 방법
배경 MongoDB를 사용에 장점인 배열 필드에 데이터를 넣을 때 중복된 데이터를 넣으면 안되는 상황 해결방안 $addToSet를 사용한다. 사용방법 Model.updateOne({ 찾는 조건 값 }, { $addToSet: { 배열 필드 명 : 들어가야하는 데이터 } });
2024.01.13 -
MongoDB (Mongoose) Transaction 사용 방법
MongoDB가 4.0, Mongoose는 5.0 버전 부터 트랙젝션이 지원이 되었다. 1. Mongoose 연결 시 필수 설정 import mongoose from 'mongoose'; mongoose.connect('mongodb://localhost/mydatabase', { useNewUrlParser: true, useCreateIndex: false, useFindAndModify: false, useUnifiedTopology: true }); const session = mongoose.startSession(); 2. withTransaction 메소드 사용 whithTransaction 함수 안에서 작동 해야하는 쿼리를 넣어 준다. const session = mongoose.start..
2023.02.26 -
3. Nest.js 광부왕 게임 서버 로그 저장 [로그 데이터]
- Log DB DB : MongoDB 사용 이유 : 대용량의 데이터를 저장 하기 유리한 NoSql 방식의 MongoDB 사용 1. 라이브러리 설치 @nestjs/mongoose mongoose 설치 npm install --save @nestjs/mongoose mongoose 2. model 파일 생성 model 폴더 안에 model 파일 생성 logs.model.ts * 로그 저장 설정 : 로그 저장 기간은 3개월이 되면 자동으로 제거되도록 설정 한다. import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; import { Document } from 'mongoose'; const options = { timestamps: true, co..
2023.02.19 -
Nest Mongoose Unable to connect to the database. 에러 해결
* 환경 로컬에서 개발 중 Mongoose를 사용 할 때 이전에는 mongodb://localhost:27017로 DB연결을 자주 했는데 * 에러 발생 원인 다른 로컬에서 개발시에 Mongoose Unable to connect to the database. 에러가 발생했다. * 해결 방법 mongodb://127.0.0.1:27017/ 로 연결을 해주어야지 정상 연결이 된다. 참고 https://stackoverflow.com/questions/70730514/unable-to-connect-to-the-database-retrying
2022.12.27 -
Nest 다른 모듈에서 Mongoose 사용 방법
Mongoose로 구성된 Model을 불러와 findOne 같은 함수를 사용하려고 할 때 에러 이유는 사용하려는 Module에서 MongooseModule을 imports에 넣어 주지 않아 생기는 오류이다. 해결 방법 1. MongooseModule.forFeature()를 형식에 맞게 imports에 넣어준다. 2. 사용시 @InjectModel()를 constructor에 넣어준다. //moduel import { User, UserSchema } from './../model/users.model'; import { SignupRepository } from './signup.repository'; import { Module } from '@nestjs/common'; import { Signup..
2022.04.25