ב-Firestore במצב Datastore יש גישה למטא-נתונים שכוללים מידע על קבוצות ישויות, מרחבי שמות, סוגי ישויות, מאפיינים וייצוגים של מאפיינים לכל מאפיין. לדוגמה, אפשר להשתמש במטא-נתונים כדי ליצור כלי צפייה מותאם אישית במאגר נתונים לאפליקציה או לפונקציות ניהול בקצה העורפי.
לוח הבקרה של Datastore ב-Console מספק גם מטא-נתונים מסוימים לגבי האפליקציה, אבל הנתונים שמוצגים שם שונים בפרטים חשובים מהנתונים שמוחזרים על ידי הפונקציות האלה. Google Cloud
- עדכניות. כשקוראים מטא-נתונים באמצעות ה-API, מקבלים נתונים עדכניים, אבל הנתונים בלוח הבקרה מתעדכנים רק פעם ביום.
- תוכן העניינים. חלק מהמטא-נתונים בלוח הבקרה לא זמינים דרך ממשקי ה-API, ולהיפך.
- מהירות. החיוב על שאילתות ועל אחזור מטא נתונים מתבצע באותו אופן כמו החיוב על שאילתות ועל אחזור נתונים במאגר הנתונים. שאילתות לקבלת מטא נתונים שמביאות מידע על מרחבי שמות, סיווגים ומאפיינים בדרך כלל פועלות לאט. ככלל, שאילתת מטא-נתונים שמחזירה N ישויות תימשך בערך כמו N שאילתות רגילות, שכל אחת מהן מחזירה ישות אחת. בנוסף, שאילתות לייצוג נכסים (שאילתות של נכסים שאינן רק מפתחות) פועלות לאט יותר משאילתות של נכסים שהן רק מפתחות. אחזור מטא-נתונים של קבוצת ישויות מהיר יותר מאחזור של ישות רגילה.
שאילתות לקבלת מטא נתונים
שלושה סוגים מיוחדים של ישויות שמורים לשאילתות של מטא-נתונים:
| ישות | תיאור |
|---|---|
__namespace__ |
משמש כדי למצוא את כל מרחבי השמות שנעשה בהם שימוש בישויות של האפליקציה. |
__kind__ |
משמש לשליחת שאילתה לגבי סוג ספציפי. |
__property__ |
משמש לשליחת שאילתות לפי מאפיין מסוג מסוים. |
הסוגים האלה לא יתנגשו עם סוגים אחרים באותם שמות שכבר קיימים באפליקציה. כשמבצעים שאילתה על הסוגים המיוחדים האלה, אפשר לאחזר ישויות שמכילות את המטא-נתונים הרצויים.
הישויות שמוחזרות על ידי שאילתות מטא-נתונים נוצרות באופן דינמי, על סמך המצב הנוכחי של מסד הנתונים. אפשר ליצור אובייקטים של ישויות מקומיות מהסוגים __namespace__, __kind__ או __property__, אבל כל ניסיון לאחסן אותם במסד הנתונים ייכשל.
שאילתות במרחב שמות
אפשר להשתמש בשאילתת מרחב שמות כדי למצוא את כל מרחבי השמות שנעשה בהם שימוש בישויות של האפליקציה. כך תוכלו לבצע פעולות כמו פונקציות ניהול במרחבי שמות מרובים.
שאילתות במרחב שמות מחזירות ישויות מהסוג המיוחד __namespace__ שהשם של המפתח שלהן הוא השם של מרחב השמות. (יוצא מן הכלל הוא מרחב השמות שמוגדר כברירת מחדל על ידי המחרוזת הריקה "": מכיוון שהמחרוזת הריקה היא לא שם מפתח תקין, מרחב השמות הזה מוגדר באמצעות המזהה המספרי 1). שאילתות מהסוג הזה תומכות בסינון רק לטווחים של מאפיין פסאודו מיוחד __key__, שהערך שלו הוא המפתח של הישות. אפשר למיין את התוצאות לפי סדר עולה (אבל לא לפי סדר יורד) של הערך __key__. מכיוון שלישויות __namespace__ אין מאפיינים, שאילתות שמחזירות רק מפתחות ושאילתות שלא מחזירות רק מפתחות יחזירו את אותו מידע.
בדוגמה הבאה מוחזרת רשימה של מרחבי שמות של אפליקציה בטווח שבין הערכים שהוקצו למשתנים startNamespace ו-endNamespace:
C#
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore C# API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Go
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Go API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Java API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Node.js API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
PHP
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore PHP API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Python API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Ruby
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Ruby API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
GQL
SELECT __key__ FROM __namespace__ WHERE __key__ >= KEY(__namespace__, 'namespace-a') AND __key__ < KEY(__namespace__, 'namespace-b')
שאילתות מסוג Kind
שאילתות מסוג Kind מחזירות ישויות מסוג __kind__ ששם המפתח שלהן הוא השם של סוג ישות. השאילתות מהסוג הזה מוגבלות באופן מרומז למרחב השמות הנוכחי, ואפשר לסנן אותן רק לפי טווחים של פסאודו-מאפיין __key__. אפשר למיין את התוצאות לפי סדר עולה (אבל לא לפי סדר יורד) של הערך __key__. ליישות __kind__ אין מאפיינים, ולכן גם שאילתות שמחזירות רק מפתחות וגם שאילתות שלא מחזירות רק מפתחות יחזירו את אותו מידע.
בדוגמה הבאה מודפסת רשימה של הסוגים שנעשה בהם שימוש באפליקציה:
C#
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore C# API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Go
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Go API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Java API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Node.js API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
PHP
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore PHP API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Python API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Ruby
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Ruby API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
GQL
SELECT __key__ FROM __kind__
שאילתות לגבי נכסים
שאילתות מאפיינים מחזירות ישויות מסוג __property__ שמציינות את המאפיינים המאונדקסים שמשויכים לסוג ישות. (לא נכללים מאפיינים שלא נוספו לאינדקס). הישות שמייצגת את המאפיין p מסוג k בנויה כך:
- המפתח של הישות הוא מסוג
__property__ושם המפתח הוא p. - מפתח האב של הישות הוא מסוג
__kind__ושם המפתח הוא k. - מאפיין המערך
property_representationשל הישות מכיל את כל הייצוגים של המאפיין.
לדוגמה, אם מסד הנתונים מכיל בדיוק שני ישויות Task עם מאפיינים name ו-done:
Key: 'Task:1'
name: 'Read some properties'
done: true
Key: 'Task:2'
name: 'Climb'
done: null
אז שתי הישויות שיוחזרו על ידי שאילתת __property__ יהיו:
Key: '__kind__:Task/__property__:name'
property_representation: [ 'STRING' ]
Key: '__kind__:Task/__property__:done'
property_representation: [ 'BOOLEAN', 'NULL' ]
השאילתות על נכסים מוגבלות באופן מרומז למרחב השמות הנוכחי, והן תומכות בסינון מוגבל באמצעות נכס אב או טווח מעל מאפיין פסאודו __key__.
שאילתה של מאפיין keys-only יעילה יותר משאילתה של מאפיין שאינו keys-only, כי היא לא צריכה לאסוף את הייצוגים של המאפיין. בדוגמה הבאה מאחזרים את השמות של כל סוגי הישויות באפליקציה ואת המאפיינים שמשויכים לכל אחת מהן:
C#
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore C# API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Go
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Go API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Java API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Node.js API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
PHP
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore PHP API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Python API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Ruby
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Ruby API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
GQL
SELECT __key__ FROM __property__
שאילתות על נכסים: ייצוגים של נכסים
שאילתות על נכסים שלא כוללות רק מפתחות, שנקראות שאילתות לייצוג נכסים, מחזירות מידע נוסף על סוגי הערכים שמשמשים לכל נכס. הנכס property_representation בישות שמייצגת את הנכס p מסוג k הוא מערך שמכיל את כל הייצוגים של הערך של p בכל ישות מסוג k.
לכל value יש את הייצוג הבא (שימו לב שלחלק מסוגי הערכים יש ייצוגים משותפים):
| סוג הערך | ייצוג |
|---|---|
| מספר שלם | INT64 |
| מספר בשיטת נקודה צפה | DOUBLE |
| בוליאני | BOOLEAN |
| מחרוזת טקסט | STRING |
| מחרוזת בייטים | STRING |
| תאריך ושעה | INT64 |
| מפתח Datastore | REFERENCE |
| ישות מוטמעת | STRING |
| מערך | ייצוג של רכיבי המערך |
| נקודה גיאוגרפית | POINT |
| Null | NULL |
בדוגמה הבאה מוצגים כל הייצוגים של מאפיינים מהסיווג Task, באמצעות שאילתת מאפיין של ישות אב:
C#
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore C# API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Go
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Go API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Java API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Node.js API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
PHP
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore PHP API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Python API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Ruby
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Ruby API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
GQL
SELECT * FROM __property__ WHERE __key__ HAS ANCESTOR KEY(__kind__, 'Task')
שאילתות לגבי נכסים: סינון
שאילתות של מאפיינים תומכות בסינון של ישויות אב במפתח __kind__ או __property__, כדי להגביל את תוצאות השאילתה לסיווג או למאפיין יחיד, כמו שרואים בשאילתת הייצוג של המאפיין שלמעלה.
אפשר גם לסנן שאילתות של נכסים באמצעות טווח על פסאודו-הנכס __key__, כאשר המפתחות מציינים ישויות __kind__ או __property__. אפשר למיין את התוצאות לפי סדר עולה (אבל לא לפי סדר יורד) של הערך __key__. הסינון מוחל על זוגות של סוג ומאפיין, והסדר הוא קודם לפי סוג ואחר כך לפי מאפיין. לדוגמה, נניח שיש לכם ישויות עם המאפיינים הבאים:
- kind
Taskעם מאפייניםcreatedprioritytags
- kind
TaskListעם מאפייניםcreated
שאילתת הנכס הבאה עם מפתחות בלבד:
C#
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore C# API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Go
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Go API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
לא רלוונטיJava
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Java API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Node.js API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
לא רלוונטיPHP
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore PHP API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Python API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
לא רלוונטיRuby
מידע על התקנת ספריית הלקוח של Cloud Datastore ושימוש בה מופיע במאמר ספריות הלקוח של Cloud Datastore. מידע נוסף מופיע במאמרי העזרה של Cloud Datastore Ruby API.
כדי לבצע אימות ב-Cloud Datastore, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
GQL
SELECT __key__ FROM __property__ WHERE __key__ >= KEY(__kind__, 'Task', __property__, 'priority')
ייאספו זוגות מהסוגים הבאים של שמות מאפיינים:
Task, priority
Task, tags
TaskList, created
שימו לב שהתוצאות כוללות נכסים מסוגים Task ו-TaskList, אבל לא כוללות את הנכס created מסוג Task, כי הוא לא נמצא בטווח שצוין בשאילתה.