پاسخ داده شد
0
0

چطور داخل یک جدول یا collection ، فیلدهای یک collection دیگر را ذخیره کنیم؟ (مثلا چطور داخل یک post ، اطلاعات user ای که سازنده آن post را ذخیره کنیم؟)

  • شما باید برای ارسال دیدگاه شوید
پاسخ عالی
0
0

برای این کار کافی است تا در 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});

    }
  • شما باید برای ارسال دیدگاه شوید
نمایش 1 نتیجه
پاسخ شما
اگر قبلاً حساب کاربری دارید با پر کردن فیلد های زیر یا به عنوان مهمان ارسال کنید.
نام*
ایمیل*
وب سایت