
$set מעדכן רק מה שקיים: אם לאובייקט המוצר אין מאפיין מסוים, הפקודה לא תעדכן אותו. לכן אפשר לאחד את שתי הפונקציות לפונקציה אחת, updateProduct, ולמחוק את הפונקציה של העדכון החלקי.updateProduct.undefined כערך. לכן מוסיפים בדיקה: רק אם _id, name, price, stock או categoryId שונים מ-undefined, מציבים אותם באובייקט העדכון.categoryId, הוא עדיין הופיע בתשובה. הסיבה הייתה שההמרה ל-ObjectId בוצעה תמיד. הפתרון הוא להריץ אותה רק כש-categoryId קיים.הטקסט המלא של הדקות הראשונות בהרצאה «עדכון חלקי של מוצר ב-MongoDB» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו רוצים לעדכן עבור פאץ', כלומר לעדכן מוצר שלא בטוח שהיוזר הביא לי הכל לגביו. אז מה שאנחנו צריכים להבין בשביל להצליח לעשות את זה, זה שהקונספט הזה של סט מעדכן רק את מה שיש במוצר עצמו.
זאת אומרת שאם לפרודקט אין מאפיין מסוים, אז סט לא תעדכן אותו. בגלל הנקודה הזאת, בגלל התכונה הזאת, אנחנו יכולים לקחת את הפונקציה הזאת שבנינו ולהשתמש איתה גם עבור פאץ'.
זאת אומרת שבואו נשנה לה את השם במקום update full product, נשנה את זה ל-update product, זה אומר גם full וגם לא full. ואז אנחנו רוצים כמובן ללכת פה למטה ולהגיד שאין לנו update full product, יש לנו רק update product.
אין לנו partial, בואו ניפטר ממנה גם מפה גם מפה, כל הפונקציה הזאת לא קיימת לנו, אנחנו לא צריכים אותה. כעת אנחנו יכולים לגשת ל-products-controller ולשנות גם ב-put במקום update full product לקרוא ל-update product וב-patch במקום update partial product לקרוא ל-update product.
יש רק בעיה אחת אם לא שולחים לי ערכים נניח לניים לא שלחו לי איזה שהוא ערך עדיין אנחנו שולחים ניים שהוא ריק לתוך פרודקט זאת אומרת שהולך להיות כאן איזה שהוא ניים כי לפרודקט עצמו יש ניים אם אנחנו הולכים למודל שלנו אנחנו רואים שיש לו ניים ברגע שיש לנו דיס נקודה אז יש לנו name אז אנחנו יכולים לעשות פה איזשהו טריק קטן ולהגיד כזה
דבר רק אם הביאו לי נניח underline ID אם הדבר הזה שונה מ-undefined אז תכניס את ה-underline ID וככה אנחנו יכולים לעשות לכל אחד מהחבר'ה האלה רק אם הביאו לי כאן את ה-name תן לי name price תן לי price סטוק תן לי סטוק וקטגורי ID תן לי קטגורי ID. זאת אומרת שאם מישהו שלח לי כאן undefined אל תכניס לי את
האובייקט הזה כי אם כן יכניסו לי name אפילו שזה נניח שהביאו לי undefined ויכניסו פה undefined מבחינת המונגו db יש כאן איזשהו ערך והוא undefined אנחנו לא רוצים שבכלל יהיה לנו ערך במידה ולא יכניסו value אוקיי.
אז זה בייסיקלי מתאים לנו לפאצ' ובפאצ' אם אנחנו מסתכלים על הוולידציה אנחנו רואים שאף אחד מהם לא required אז זה בסדר הוולידציה לא תיפול לנו. אז בואו ננסה עכשיו להריץ ולראות האם כל הסיפור הזה תומך לנו בפאצ'.
נוד אפ גו אין איזה רץ לו בואו ניגש ואנחנו רוצים ללכת לפוט ולשכפל אותו דופליקייט ואז