Nodejs Chap8 몽고디비

jade·2025년 2월 28일

Node.js

목록 보기
11/11

1. mongodb 함수들

  • find: 모두 조회
  • findOne: 하나만
  • sort:정렬
  • limit: 조회할 다큐먼츠 제한
  • skip: 건너뛸 다큐먼츠 정함

2. mongodb 연결

const mongoose = require('mongoose');
const connect = () => {
    //배포 전(개발중)일때는 debug 하도록
    if (process.env.NODE_ENV !== 'production') {
        mongoose.set('debug', true);
    }
    mongoose.connect('mongodb://root:nodejsbook@localhost:27017/adming'), {
        dbName: 'nodejs',
        useNewUrlParser: true,
        useCreateIndex:true
    }, (error) => {
        if (error) {
            console.log('mongodb error');
        }
        else {
            console.log('mongodb connect');
        }
    }
}
mongoose.connection.on('error', (error) => {
  console.error('몽고디비 연결 에러', error);
});
mongoose.connection.on('disconnected', () => {
  console.error('몽고디비 연결이 끊겼습니다. 연결을 재시도합니다.');
  connect();
});

module.exports = connect;

3. mongodb 스키마 정의

type:자료형
require: 필수 여부
default: 기본값
unique: 고유여부
ref: 특정 컬랙션의 문서와 연결할 수 있음

const mongoose = require('mongoose');

const { Schema } = mongoose;
const { Types: { ObjectId } } = Schema;
//ref: 'User': 이 ID는 User 컬렉션의 문서와 연결 
// populate를 사용하면 댓글 작성자의 정보를 가져올 수 있음
const commentSchema = new Schema({
  commenter: {
    type: ObjectId,
    required: true,
    ref: 'User',
  },
  comment: {
    type: String,
    required: true,
  },
  createdAt: {
    type: Date,
    default: Date.now,
  },
});

module.exports = mongoose.model('Comment', commentSchema);

0개의 댓글