PracticU

מחיקה של מוצר ב-MongoDB

בלי כתוביותעם כתוביות
PracticU › קורס NodeJS › מחיקה של מוצר ב-MongoDB
מילון מושגים:
MongoDB - מסד נתונים מסוג NoSQL שמאחסן נתונים כמסמכים בפורמט דמוי JSON, בלי מבנה טבלאי קשיח.
REST - סגנון לבניית ממשקי API מעל HTTP, המבוסס על משאבים ועל שיטות סטנדרטיות כמו GET ו-POST.
Promise - אובייקט ב-JavaScript שמייצג תוצאה עתידית של פעולה אסינכרונית, שתושלם בהצלחה או תיכשל.
Callback - פונקציה שמועברת כארגומנט לפונקציה אחרת כדי שתופעל מאוחר יותר, לרוב בסיום פעולה.
קונטרולר - רכיב שמתווך בין הממשק לבין הלוגיקה והנתונים, מקבל בקשות ומחליט כיצד לטפל בהן (למשל בדפוס MVC).
Postman - כלי לבדיקת API: שליחת בקשות HTTP לשרת ובחינת התגובות, נפוץ בפיתוח ובבדיקות.
GET - שיטת HTTP לבקשת מידע מהשרת בלי לשנות אותו. הפרמטרים מועברים בדרך כלל בכתובת.
PUT - שיטת HTTP לשליחת נתונים לשרת כדי ליצור או להחליף משאב קיים במלואו.

מחיקה של מוצר ב-MongoDB
הפעולה האחרונה ב-REST service הסטנדרטי היא מחיקת מוצר מהמסד.
השלבים העיקריים
1. כותבים את deleteProductAsync: הפונקציה מקבלת _id ומחזירה Promise, באותה תבנית של הפונקציות הקודמות.
2. משתמשים ב-deleteOne: ניגשים ל-collection של המוצרים ומוחקים את המסמך שה-_id שלו שווה ל-mongodb.ObjectID(_id).
3. מדווחים: ב-callback יש שגיאה ו-info. במקרה של שגיאה קוראים ל-reject, אחרת ל-resolve בלי להחזיר ערך. את info השאירו אף שלא משתמשים בו, כדי שיהיה ברור שהוא קיים.
4. הקונטרולר מחזיר 204: אחרי המחיקה נשלחת תשובה 204 No Content.
בדיקה ב-Postman
מוחקים את המוצר האחרון (green apple) ומקבלים 204. ברשימת המוצרים וב-Robo 3T הוא כבר לא קיים, כלומר נמחק פיזית. שליחה נוספת של אותה בקשה אינה קורסת וגם מחזירה 204, בעוד GET, PUT ו-PATCH על אותו מוצר מחזירים Not Found.
עכשיו אפשר למחוק מוצר ב-MongoDB, וההרצאה הבאה עוברת ל-MongoDB Query Language.
השיעור הבא בקורס: כתיבת שאילתות ל-MongoDB

פרקי ההרצאה: מחיקה של מוצר ב-MongoDB

  1. 00:00

    פתיחת הפונקציה Delete Product

  2. 00:48

    שימוש ב-deleteOne עם Object ID

  3. 01:29

    התאמת הקונטרולר להחזרת 204

  4. 02:10

    בדיקת המחיקה דרך Postman

תמלול ההרצאה: מחיקה של מוצר ב-MongoDB

הטקסט המלא של הדקות הראשונות בהרצאה «מחיקה של מוצר ב-MongoDB» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:03

    אנחנו רוצים כעת להתעסק עם מחיקה. בואו ניגש לפונקציה delete product async, ניפטר רגע מה-async הזאת, ויש לנו כמובן ID שאנחנו רוצים, underline ID, ניפטר מהתוכן של הפונקציה, ונעשה איזה קופי אולי, שנחסוך קצת בכתיבה.

  2. 00:26

    בואו ניקח סתם את זאת, get one, נעתיק כי אנחנו צריכים את התבנית הזאת של ה-promise, נדביק פה, ויש לנו return new promise, resolve, reject, יש לנו פה את db-collection-products, במקום find one, delete one.

  3. 00:48

    אנחנו אומרים לו לחפש בדיוק את זה שה-id שווה, mongo db-object-id, underline-id, ובמידה והצלחנו, אז הוא נותן לנו error ו-info, הוא לא ייתן לנו את האובייקט עצמו.

  4. 01:06

    יש לנו כאן אם יש שגיאה ריג'קט וריזולב, אין לנו שום דבר שאנחנו מוסיפים או מדווחים. הנה הפונקציה delete product async, אנחנו כמובן לא היינו חייבים לקבל את האינפו כי אנחנו לא משתמשים איתו בהקשר הזה, אפשר לבנות את זה גם ככה, אבל בכדי שנדע שיש פה איזשהו אובייקט אינפו, אולי בהמשך נרצה להציג איזה משהו, נשאיר את האינפו כאן.

  5. 01:35

    delete, בואו נסתכל אם יש לנו פה משהו לשנות. כאן אנחנו רואים delete, קיבלנו underline ID, לקחנו אותו, מחקנו, החזרנו 204, בואו נבדוק את זה. נעצור, נריץ, ניגש לפוסטמן.

  6. 01:53

    קודם כל ניגש לכאן ונראה את כל המוצרים, נגלול פה למטה וניקח את האפל הזה. אוי, האמת, בואו קודם כל אולי נייצר לעצמנו אחד חדש, delete, ניקח את זה, נשים פה, האמת נראה לי שזה כל

לקורס המלא: קורס NodeJS אונליין בעברית

ההרצאה הקודמת: עדכון חלקי של מוצר ב-MongoDB

ההרצאה הבאה: כתיבת שאילתות ל-MongoDB

הרצאות קשורות מקורסים אחרים

  • מבוא ל-MongoDB
  • מחיקה של משאבים בענן
  • הצגת פרטי מוצר
  • מחיקה של דרייברים ועידכוני וונדוס ישנים

קורסים נוספים במסלול

  • קורס יסודות HTML - בניית אתר אינטרנט פשוט
  • קורס CSS 3 - בדגש על Flex & Grid
  • קורס Javascript כולל JQuery
  • קורס ג'אווה סקריפט מעשי - JavaScript
  • קורס TypeScript
  • קורס ריאקט - React