Hỏi về mối quan hệ hasManyThrough trong mongodb với mongoose



  • Các bác giúp em với ạ, em không biết tạo mối quan hệ trong mongodb như thế nào ạ. Ví dụ em đang có 1 collection là Category và tiếp thep là một colection tên là Subcategory, tiếp đến là 1 colection Posts. Hiện tại thì em có mối quan hệ là Category sẽ có nhiều Subcategory, và Subcategory sẽ có nhiều post. Vậy làm thế nào để xây dựng 1 Category cũng sẽ có nhiều post thông qua collection Subcategory. Mọi người giúp em với ạ



  • Chỉ cần 2 bảng Category và Post

     var categorySchema = new mongoose.Schema({
         name: { type: String },
         subCategory: { type: mongoose.Schema.Types.ObjectId, ref: 'Category' },
       });
     var postSchema = new mongoose.Schema({
         title: { type: String },
         category: { type: mongoose.Schema.Types.ObjectId, ref: 'Category' },
       });


  • Là sao hả bác ơi, bác hướng dẫn em chút được k a?



  • Example :
    Category Laptop = { id: 1, name: Laptop , subCategory: null},
    Category Apple = { id: 2, name: Apple, subCategory: 1},
    Post Macbook Air 13 = { id:3, title: Macbook Air 13, subCategory: 2 }

    theo cáu trúc này , bạn có thể tìm được tất cả các Post có category = Laptop , hoặc các Post có Category = Apple



  • @Phu-Le said in Hỏi về mối quan hệ hasManyThrough trong mongodb với mongoose:

    ể tìm được tất cả các Post có categor

    thanks bác, nhưng em vẫn chưa hiểu lắm, cụ thể mình set cái model như thế nào được ạ, em dùng mongoose



  • thay vì 3 Model : Category , Sub Category, Post
    thì làm 2 Model : Category , Post

    Model Category : thì bạn làm kết nối với Category, ví dụ code mình cũng đã viết sẵn ( sử dụng Mongoose )

     var categorySchema = new mongoose.Schema({
         name: { type: String },
         subCategory: { type: mongoose.Schema.Types.ObjectId, ref: 'Category' },
       });
    

    Model Post : thì bạn làm kết nối tới Category

     var postSchema = new mongoose.Schema({
         title: { type: String },
         category: { type: mongoose.Schema.Types.ObjectId, ref: 'Category' },
       });


  • @Phu-Le said in Hỏi về mối quan hệ hasManyThrough trong mongodb với mongoose:

    postSchema

    Thanks bac nhiều ạ, mà có cách nào thêm subcategory vào không bác?


Log in to reply