populate란?

populate() 메서드는 MongoDB의 Mongoose 라이브러리에서 제공하는 기능 중 하나입니다. 이 메서드는 문서의 특정 필드를 다른 컬렉션에서 가져와 현재 쿼리된 문서에 추가합니다. 즉, populate()를 사용하면 참조 필드를 가진 문서에서 참조된 다른 모델의 데이터를 가져올 수 있습니다.

 

경비 명세서 스키마

const mongoose = require('mongoose');

const expense_Schema = mongoose.Schema(
    {
        requestor: {
            type: mongoose.Schema.Types.ObjectId,
            ref: "Employee",
            default: null,
        },
        company: {
            type: mongoose.Schema.Types.ObjectId,
            ref: "Company",
            default: null,
        },
        // 승인 매니저
        approver: {
            type: mongoose.Schema.Types.ObjectId,
            ref: "Manager",
        },
        // 거절 매니저
        rejector: {
            type: mongoose.Schema.Types.ObjectId,
            ref: "Manager",
        },
    },
    {
        timestamps: true,
    }
);

const Expense = mongoose.model("Expense", expense_Schema);

module.exports = Expense;

 

 

populate로 참조하기

const expense = await dbModels.Expense.find(expenseQuery)
            .sort(sortOption)
            .skip((page - 1) * pageSize)
            .limit(pageSize)
            .populate("requestor", { username: true, email: true })
            .populate("approver", { username: true, email: true })
            .populate("rejector", { username: true, email: true });

 

'Server > MongoDB' 카테고리의 다른 글

Image upload  (0) 2024.05.21
s3 주소 노출 위험 방지하기  (0) 2024.05.10

+ Recent posts