چطور داخل یک جدول یا collection ، فیلدهای یک collection دیگر را ذخیره کنیم؟ (مثلا چطور داخل یک post ، اطلاعات user ای که سازنده آن post را ذخیره کنیم؟)
- نفیسه افقی 3 سال قبل سوال کرد
- شما باید برای ارسال دیدگاه وارد شوید
برای این کار کافی است تا در schema جدول یا collection خود، فیلدی که می خواهید به یک collection دیگر لینک شود را بصورت زیر تعریف کنید:
@Prop({type: mongoose.Types.ObjectId, ref: 'User'})
creator:User;
حالا برای گرفتن تمامی داده های User ، می توانید از متد populate در mongoose استفاده کنید:
async getPost(_id:string):Promise<any>
{
return await this.PostModel.findOne({_id:_id}).populate("creator");
}
* دستور بالا، یک Post با تمام داده های creator آن، که یک User است را بر می گرداند.
* اگر می خواهید تنها فیلد های خاصی از User را برگردانید ، می توانید از دستور زیر استفاده کنید:
async getPost(_id:string):Promise<any>
{
return await this.PostModel.findOne({_id:_id}).populate("creator",{avatarPic:1,job:2,username:3,name:4});
}
- نفیسه افقی 3 سال قبل پاسخ داد
- آخرین ویرایش 3 سال قبل
- شما باید برای ارسال دیدگاه وارد شوید