
getProductsByPriceRange מחזירה Product.find({ price: { $gte: minPrice, $lte: maxPrice } }).exec(). אותו אובייקט שאילתה כמו קודם, רק בלי לבנות Promise ובלי toArray.find מתאר אילו שדות להחזיר, למשל "name price". עם null מקבלים הכול.{ sort: { price: 1 } }.{ sort: { price: -1, name: 1 } }. הערך 1 הוא סדר עולה ו-1- הוא סדר יורד. בבדיקה המחירים ירדו מ-20 ל-19.5, ובין שלושה מוצרים במחיר 10 הסדר היה לפי שם, בסדר עולה.הטקסט המלא של הדקות הראשונות בהרצאה «כתיבת שאילתות של MongoDB בתוך Mongoose» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
הדבר הבא שאנחנו רוצים לראות זה את המונגו db query language שדיברנו עליה. יש לנו כאן את כל ה-comparison query operators ויש לנו פה את האור לדוגמה וכל מיני אופרטורים אחרים שהתעסקנו איתם.
מה שקורה במונגוס ושבייסיקלי כל הדברים האלה קיימים as is אבל אנחנו לא משתמשים בזה עם db collection כמובן אלא משתמשים בטכניקה שהשתמשנו עד עכשיו. אז אם אני הולך כאן למעלה למעלה, אני רואה שיש לי פה get all products async.
ודרך אגב, פתאום אני רואה שבכלל אני לא צריך אותו. אין לי פה שום mongo db. ביי ביי. ואנחנו רוצים את זה, product find exec.
בדיוק אותו עבור הפונקציה הזאת, ועשינו אותה בעבר בעזרת native mongo db. get products by price range אז אנחנו רוצים to return product find אבל מה אנחנו רוצים להגיד לו שאנחנו מחפשים בדיוק את המונגו db query language הזאת בואו נעתיק נדביק בתוך find אנחנו לא צריכים לייצר promise כי אקזק מחזירה לנו הוא פרומיס מתחילת התהליך ומחזירה פרומיס.
אין פה to array או כל מיני קודים יותר מורכבים שהתעסקנו איתם. בואו ניפטר רגע מזה ונבדוק. אנחנו רוצים להחזיר את כל המוצרים בטווח הזה.
דולר GTE זה greater than or equal, דולר LTE זה lower than or equal, זה בדיוק הטווח. בואו נראה את הקונטרולר. בקונטרולר יש לנו buy price range, מינימום, מקסימום, קיבלנו אותם, שלחנו, החזרנו את המוצרים.
נעצור, נריץ, ניגש לפוסטמן ונעבור לראוט הבא, שהיה בדיוק זה, בי פרייס ריינג' 10 עד 12. נריץ אותו ויש לנו הנה 10 והנה 12.
בואו ננסה 10 ו-20 לדוגמה ונרחיב אותו טיפה, יש לנו 18, 19, אנחנו רואים שיש לנו פה 10 עד 20. אם אנחנו רוצים לדוגמה למיין או לבצע קונפיגורציות נוספות על המידע, כמובן שכל הדברים האלה קיימים אצלנו ואנחנו יכולים להוסיף אותם פה.
הנה, לדוגמה, בואו רגע נשכפל את זה, נשים בהערה. אם אנחנו רוצים למיין, אז אנחנו רואים ש-Find מקבלת את האובייקט שמתאר מה אנחנו מחפשים.
לאחר מכן היא מקבלת, יש פה עוד העמסות, בואו נחפש את ההעמסה הזאת, איזה דברים אנחנו רוצים להחזיר במקום להחזיר את כל הפריטים של המוצר. אולי אנחנו רוצים להחזיר משהו אחר. לדוגמה, אם היינו רוצים להחזיר רק name ו-price, אז היינו יכולים לתת כאן תיאור של name ו-price.
לדוגמה, name במחוז, הכוונה. אז המערכת הייתה מחזירה לנו רק מה שמכיל name ו-price. אם אנחנו רוצים להביא את הכל, null.