PracticU

פקודות ב-MongoDB

בלי כתוביותעם כתוביות
PracticU › קורס NoSQL - MongoDB › פקודות ב-MongoDB
מילון מושגים:
MongoDB - מסד נתונים מסוג NoSQL שמאחסן נתונים כמסמכים בפורמט דמוי JSON, בלי מבנה טבלאי קשיח.
מעטפת - תוכנה שמפרשת פקודות של המשתמש ומעבירה אותן למערכת ההפעלה, למשל Bash או PowerShell.
קלאסטר - קבוצת מחשבים או שרתים שעובדים יחד כמערכת אחת, לשם זמינות גבוהה, ביצועים או חלוקת עומס.
CMD - שורת הפקודה הקלאסית של Windows (Command Prompt), להרצת פקודות ותוכניות בממשק טקסטואלי.
נתיב - מחרוזת שמתארת את מיקומו של קובץ או תיקייה במערכת הקבצים, או כתובת של משאב בתוך אתר.
אופרטור - סימן בקוד שמבצע פעולה על ערכים, כמו חיבור, השוואה או פעולה לוגית.

פקודות ב-MongoDB
הדגמה חיה של שליפה ב-mongo shell מתוך cluster ב-Atlas: מתחברים, עוברים בין מסדים ו-collections, ומסננים, ממיינים ומצמצמים תוצאות.
הצעדים בהדגמה
1. חיבור: מעתיקים את ה-connection מ-Atlas ומריצים אותו. הפקודה לא מוכרת כי היא נמצאת בספרייה bin של ההתקנה. הפתרון המוצג הוא להריץ מה-cmd בתוך הספרייה, ואפשר גם להוסיף את הנתיב ל-Path של Windows.
2. מסדים ו-collections: show dbs מציג את המסדים עם גודלם, db את המסד הנוכחי, use מעביר למסד אחר, ו-show collections מציג את ה-collections.
3. שליפה בסיסית: find על ה-collection Users עם limit 1, ואחריו pretty להצגה עם הזחה, כך שהמפתחות והערכים קריאים.
4. סינון: מציינים בתוך find סוגריים מסולסלים עם שם השדה, נקודתיים והערך, כמו אימייל או runtime. בדוגמה עם ה-collection movies סיננו runtime שווה ל-11.
5. אופרטורים: $eq שקול לנקודתיים, $gte מחזיר ערכים שגדולים או שווים ל-11, ו-$lt מחזיר ערכים קטנים מ-11.
6. בחירת שדות: אחרי הקריטריון מוסיפים פסיק ושדות עם 1, כמו title, runtime ו-year. השדה _id מוצג כברירת מחדל, ואפשר להסתיר אותו עם _id: 0.
7. מיון: sort על שדה כמו year: 1 מיון עולה ו--1 יורד. הערך 0 גורם לשגיאה.
שימו לב
MongoDB רגיש לאותיות גדולות וקטנות. שם שדה כמו genre לא יימצא אם הוקלד עם אות גדולה. גם שמות מסדים רגישים: use עם אותיות שונות יוצר מסד חדש וריק, ולכן show collections לא מציג שום דבר עד שחוזרים לשם המדויק, כאן mflix.
אחרי ההרצאה אפשר להריץ ב-shell שליפות עם קריטריון, שדות נבחרים, מיון והגבלת מספר התוצאות.

פרקי ההרצאה: פקודות ב-MongoDB

  1. 00:00

    התחברות ל-Atlas דרך ה-Shell

  2. 00:39

    הוספת הנתיב ל-Path של Windows

  3. 01:14

    הפקודות show dbs ו-use

  4. 02:08

    show collections ושליפה עם Find

  5. 02:48

    תצוגה נוחה עם pretty

  6. 03:47

    סינון לפי שדה וערך

  7. 05:38

    תשאול ה-Collection של movies

  8. 06:59

    Limit והאופרטור $eq

תמלול ההרצאה: פקודות ב-MongoDB

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

  1. 00:02

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

  2. 00:17

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

  3. 00:46

    ומתוכו אנחנו נכנסים, ורק לאחר שיש לי את הפרומפט שבו אנחנו מכירים כבר את ה-Executable, ניתן לפתור את הבעיה הזאת אם היינו מכניסים את הנתיב הזה לתוך ה-Path של מערכת ההפעלה של Windows, היינו יכולים כבר למצוא את הפקודה הזאת בקלות, כי המערכת הפעלה הייתה יודעת ללכת ולחפש

  4. 01:04

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

  5. 01:17

    דבר ראשון שאני רוצה לדעת זה show dbs על מנת לראות מהם הדאטאבסים שיש לנו. אז הנה show dbs מראה לנו את סדרת הדאטאבסים שכרגע אנחנו יכולים להתחבר לכל אחד מהם שהם נוצרים.

  6. 01:34

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

  7. 01:47

    אני רוצה להתחבר לדאטאבייס אחר, אז אני רושם use, ממש כמו הפקודה עצמה שאנחנו מכירים אותה מתוך ה-SQL, ולאחר מכן שם של הדאטאבייס שאליו אנחנו רוצים להתחבר.

  8. 02:03

    אז use sample and flix להתחבר לתוך הדאטאבייס הזה. אני מספיק שאני רושם כאן use ואני אפנים. switch to db sample and flix.

  9. 02:14

    כרגע אנחנו מחוברים לתוך הדאטאבייס הזה. db, הנה הוא כאן. אני רוצה לדעת גם מהו הקולקשנים שיש לנו, אז יש לנו אפשרות לכתוב show collections, ואז אנחנו מקבלים את אוסף הקולקשנים שאותם אנחנו יכולים לתשאל.

  10. 02:32

    אם אני רוצה לתשאל קולקשן מסוים, אז אני אומר לו מתוך ה-DB הזה תיכנס לתוך הקולקשן שנקרא Users ובתוכו אני רוצה לבצע Find כאשר אני רוצה להגביל את החיפוש שלי רק לרשומה אחת בודדת.

  11. 02:50

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

  12. 03:02

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

  13. 03:25

    כשלא רשמתי את pretty נכון, וpretty צריך לרשום עם WT, ו-once אני רושם את זה, שימו לב כיצד ההצגה כאן היא כבר יותר ידידותית לעין מאחר ויש לנו אינדנטציה, מאחר ויש לנו רישום של ה-keys עצמו ורק לאחר מכן נקודותיים והערכים עצמם.

  14. 03:45

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

  15. 03:56

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

  16. 04:11

    במקרה כאן אנחנו יכולים לחפש את כל אלו שהשם שלהם שווה לניו סטארק במקרה הזה, או שהאימייל שווה לאימייל הזה. בואו נחפש את אותו אימייל, איך אני כותב זאת?

  17. 04:26

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

  18. 04:48

    אז האימייל שלנו, אנחנו שולפים את כל אלו שהאימייל שלהם בעצם נמצא שווה לסין בן לכתובת מייל שאותה רשמנו. כאן אנחנו סוגרים את הסוגריים הסולסולות שבתוך ה-Find, כאן אנחנו סוגרים את הסוגריים העגולות שבתוך הפסוקית עצמה של ה-Find, ולאחר מכן אנחנו עושים Pretty, Select ושולפים, ואנחנו, אף על פי שהגבלנו

  19. 05:12

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

  20. 05:30

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

  21. 05:46

    נציג שוב פעם את ה-collections אז הנה יש לנו את ה-movies בואו נתחבר לתוך ה-movies db.movies גם כאן נעשה find גם כאן נביא אותם כ-pretty ונציג את כל הנתונים עצמם כאן אנחנו רואים שיש לנו ממש הרבה מאוד רשומות שבהם אנחנו יכולים ללכת ולבצע איזשהו חיפוש אז יש לנו כאן את השדה של runtime יש לנו את השדה של-cast יש לנו את ה-ID כסדר מנדטורי, פלוט,

  22. 06:19

    ז'אנר, לאיזה ז'אנר זה שייך. אני רוצה לחפש את כל אלו שה-Runtime שלהם שווה ל-11. אז שוב פעם אנחנו רושמים את הפקודה MovieFind ובפנים אנחנו רושמים סוגריים מסולסלים ובפנים אנחנו רושמים Runtime, נקודותיים 11 ומריצים את זה. אז הנה קיבלתי

  23. 06:42

    כאן את כל אלו שה-Runtime שלהם. אם אנחנו נסתכל בתוך ה-run time עצמו בשדה, אנחנו נגלה שבכולם run time 11. run time כאן 11 והנה גם כאן run time 11 וגם כאן בדוגמה הזאת אנחנו מקבלים את run time 11 כפי שרצינו.

  24. 07:04

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

  25. 07:25

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

  26. 07:49

    אם אני רוצה לצמצם את ההצגה, ההצגה עצמה ארוכה מדי ואנחנו לא רוצים להציג את כל הרשומות, יש לנו אפשרות להיכנס כאן בתוך פקודת פיינד, לרשום פסיק וכאן לציין את הפסוקית עצמה,

לקורס המלא: קורס MongoDB אונליין

ההרצאה הקודמת: עדכון נתונים ב-MongoDB

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

  • פקודות NPM
  • סיכום פקודות ב-ANSIBLE
  • יצירת טבלה - פקודות
  • פקודות break and continue

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

  • קורס DBA אפליקטיבי - שפת SQL למתחילים
  • קורס SSIS
  • קורס BI - ניתוח מסדי נתונים - Qlik Sense
  • קורס Power BI