چطور داخل یک جدول یا collection ، فیلدهای یک collection دیگر را ذخیره کنیم؟ (مثلا چطور داخل یک post ، اطلاعات user ای که سازنده آن post را ذخیره کنیم؟)
- نفیسه افقی 2 سال قبل سوال کرد
- شما باید برای ارسال دیدگاه وارد شوید
برای این کار کافی است تا در 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});
}
- نفیسه افقی 2 سال قبل پاسخ داد
- آخرین ویرایش 2 سال قبل
- شما باید برای ارسال دیدگاه وارد شوید