
Product ואת Joi. ולידציה תטופל בנפרד, בהמשך.new mongoose.Schema({...}) מתארת מה יש במוצר: name מסוג String, price ו-stock מסוג Number, ו-categoryId מסוג mongoose.Schema.Types.ObjectId. הסוגים הם סוגי JavaScript באות גדולה. את _id לא מגדירים, כי MongoDB מייצר אותו בעצמו. בהמשך יוגדר ה-categoryId כהפניה ל-category.mongoose.model("ProductModel", productSchema, "products"). הפונקציה מקבלת שם למודל, את הסכמה ואת שם ה-collection במסד, בלשון רבים.module.exports = Product, בלי הסכמה.הטקסט המלא של הדקות הראשונות בהרצאה «יצירת מודל - Product Model» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אחרי שראינו איך אנחנו יכולים להתחבר דרך מונגוס למסד הנתונים מונגו די בי, בואו נתחיל לצלול פנימה ולראות איך אנחנו יכולים לבצע את כל הפעולות של קריאת מידע, הוספת מידע וכדומה.
אז כמו שראינו בסרטון הקודם, מונגוס זה פשוט מערכת שנחשבת ORM Object Relational Mapper. זה אומר שיש לנו מודל שאנחנו צריכים לבנות, לדרכו אנחנו מבצעים את כל הפעולות אבל יש לנו כבר מודל המודל שבנינו בעבר מודל שמתאר מוצר קלאס פרודקט יש לנו קונסטרקטור יש לנו כל מיני בדיקות ולידציה אבל במונגוס אנחנו לא בונים את המודל בצורה כזאת על ידי קלאס בעצמנו אנחנו בונים את זה באופן אחר לגמרי
אנחנו בעצם אומרים למונגוס מה בדיוק אנחנו צריכים שיהיה לנו בפרודקט ומונגוס מייצרת לנו אובייקט או ליתר דיוק קלאס פרודקט שיש בו כבר את כל הפונקציונלות שאנחנו צריכים בשביל לבצע כל פעולה על הדאטאבייס.
זאת אומרת שמה שאנחנו לא צריכים כרגע זה מודל משלנו. אז מה שאני הולך לעשות במחלקה פרודקט, קונטרול A ו-Delete, מוחק אותה לגמרי.
ודרך אגב אנחנו גם לא צריכים את ג'וי. יש לנו פה מערכת של ולידציה אחרת אבל אנחנו נטפל בזה בהמשך. ואנחנו רוצים קונסט מונגוס require מונגוס קונסט אנחנו בונים קודם כל משהו שנקרא פרודקט סכמה.
פרודקט סכמה פשוט מתאר מה יש באובייקט מוצר אחד. את זה אנחנו עושים על ידי מונגוס נקודה סכמה ואנחנו נותנים לה אובייק בצורה כזאת ומה שאנחנו אומרים זה מה הדברים שקיימים במוצר מבלי להגדיר את ה-ID כי אם אנחנו מגדירים את ה-ID זה אומר שאנחנו צריכים לספק את ה-ID כלומר את ה-underline ID ואם אנחנו לא מגדירים את ה-ID מונגוס,
ליתר דיוק MongoDB מספקת אותו בעצמה כאשר אנחנו מוסיפים דוקימנט חדש. אז מה יש לנו? יש לנו name והסוג שלו זה סטרינג. יש לנו price והסוג שלו זה number, שימו לב לאותיות הגדולות כי