
getCategoriesIncludingProducts, בלשון רבים, כי לכל קטגוריה יש הרבה מוצרים. מעתיקים את הקוד של ההרצאה הקודמת.categories במקום ל-products.$lookup: from הוא products, localField הוא _id, foreignField הוא categoryId, ושם המערך החדש הוא products.$unwind: כאן רוצים שיישאר מערך של מוצרים, ולכן מסירים אותו.categories-including-products. בבדיקה ב-Postman רואים לכל קטגוריה את ה-_id, השם והתיאור, ומערך המוצרים שלה, למשל לקטגוריה Beverages יש בין השאר את chai.db.collection. אחד הנפוצים עם MongoDB נקרא mongoose.הטקסט המלא של הדקות הראשונות בהרצאה «שליפת קטגוריה עם כל המוצרים שלה - MongoDB Join» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אחרי שראינו איך אנחנו יכולים להביא את כל המוצרים כאשר לכל מוצר קטגוריה משלו, אנחנו רוצים לבנות פונקציה שעושה פעולה דומה אבל קצת הפוכה. אנחנו רוצים להביא את הקטגוריות ולכל קטגוריה איזה מוצרים יש לה.
אז הפונקציה שאנחנו רוצים לבנות בביזנס לוג'יק היא get categories including products שימו לב שכאן get product including category ביחיד כי לכל מוצר יש קטגוריה אחת.
אבל כשכתבתי את השם של הפונקציה זה קטגוריות ולכל קטגוריה יש כמובן הרבה מוצרים. אז זה בעצם מה שאנחנו רוצים להביא וזה מאוד דומה לקוד הקודם. בואו ניקח את כל הקוד הקודם, נעתיק, נדביק.
מה אנחנו רוצים כאן? אנחנו רוצים את ה-collection לא products אלא categories. יש לנו קולקשן כזה. אנחנו שוב רוצים אגריגייט בכדי לבצע את אותו ג'וין לוקאפ שלנו פרום בואו נראה לוקל פילד אמור להיות האנדרליין איי-די פרום איזה טבלה אנחנו רוצים לגשת אליה פרודקטס מה הפורן קי שיש בפרודקטס
קטגורי איי-די אז בואו נקרא לזה פרודקטס זאת אומרת שהאובייקט או הקולקשן שייווצר לנו נקרא פרודקטס והוא ייווצר בכל אחת מהקטגוריות שיש.
כאן אנחנו לא צריכים את ה-unwind הזה מפני שאנחנו רוצים שיישאר לנו מערך של מוצרים. אז הורדנו את ה-unwind ובואו נחצין את הפונקציה, נחצין אותה מפה, ניגש לקונטרולר, נשכפל את כל פונקציה הזאת, getCategoriesIncludingProducts כאן יש לנו categoriesIncludingProducts הפונקציה שלנו getCategoriesIncludingProducts אז כאן אנחנו רואים שה-route
מוכן או יש בואו רק נשנה את השם הזה ל... נשנה אותו פה categories כי מה שמוחזר לנו זה קטגוריות ולא מוצרים אנחנו רוצים עכשיו