
ObjectID. mongoose ממירה אותה אוטומטית, ולכן מחפשים לפי המחרוזת כמות שהיא.findOne: כי רוצים אובייקט אחד ולא מערך. סוף השורה הוא .exec(), שמחזיר Promise.{ _id: _id } כותבים { _id }. זה קיצור של JavaScript כשהשם של המאפיין שווה לשם המשתנה.getAllProducts אפשר לכתוב find() בלי אובייקט כשאין סינון._id של chai. בבקשת GET למוצר בודד מתקבל chai בלבד.הטקסט המלא של הדקות הראשונות בהרצאה «שליפת מוצר בודד מתוך Mongoose» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו עוברים להחזרת מוצר בודד לפונקציה הזאת. יצרנו בה פרומיס, ניגשנו לכל המוצרים, חיפשנו מוצר בודד לפי ID. קיבלנו את ה-ID לפונקציה, שזה בסדר, גם אנחנו רוצים עכשיו לקבל אותו, אבל עשינו את המעין השוואה לפי Object ID, כי ה-Client שולח לנו מחרוזת.
אנחנו יודעים שבמונגו DB, בדאטאבייס, זה לא בדיוק מחרוזת, זה אובייקט מסוג Object ID, שזה מעין אובייקט בינארי כזה.
אבל כאשר אנחנו עובדים עם מונגוס, בואו נעתיק פשוט את הפקודה הזאת ורק נגיד שאנחנו מחפשים את המחוזת ID. מונגוס אוטומטית יודעת לעשות את ההמרה הזאת ל-Object ID.
לכן אנחנו יכולים להיפטר מכל זה ולהשאיר את השורה הזאת. יש לנו פה סך הכל find, האמת find one, לא find, כי אנחנו מחפשים פריט בודד. אנחנו רוצים להחזיר אובייקט ולא מערך.
אין שום צורך לבצע שום המרה ל-object ID, וזהו. עכשיו אני גם רואה שהסוגריים כאן כמובן הם בשביל לתאר מידע נוסף. פה אנחנו יכולים להוריד אותם, כי אין לנו מידע נוסף שאנחנו רוצים לתאר, כלומר איזשהו פילטרינג.
נניח תביא לי רק כאלה, שה-Name שלהם שווה לאיזושהי מחרוזת או שה-Price שלהם שווה ל-40 או משהו כזה. בגלל שאנחנו רוצים בפונקציה הזאת Get All Products את הכל, אין בעיה להגיד לו Find בלי Object עבור