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.s..
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