בדף הזה מתוארים סוגי הנתונים שנתמכים ב-Cloud Firestore.
סוגי נתונים
בטבלה הבאה מפורטים סוגי הנתונים שנתמכים ב-Cloud Firestore. בנוסף, מתואר סדר המיון שמשמש להשוואה בין ערכים מאותו סוג:
| סוג הנתונים | סדר מיון | הערות |
|---|---|---|
| מערך | לפי ערכי רכיבים |
במסדי נתונים במהדורה רגילה, מערך לא יכול להכיל ערך של מערך אחר כאחד מהאלמנטים שלו. במסדי נתונים של מהדורת Enterprise, מערך יכול להכיל ערך של מערך כאחד מהרכיבים שלו. בתוך מערך, הרכיבים שומרים על המיקום שהוקצה להם. כשממיינים שני מערכים או יותר, המערכים מסודרים לפי ערכי הרכיבים שלהם. כשמשווים בין שני מערכים, מתבצעת השוואה בין הרכיבים הראשונים של כל מערך. אם הרכיבים הראשונים שווים, המערכת משווה את הרכיבים השנייה וכן הלאה עד שנמצא הבדל. אם נגמרו הרכיבים להשוואה במערך, אבל עד אותו רגע המערכים היו שווים, המערך הקצר יותר יופיע לפני המערך הארוך יותר. לדוגמה, |
| בוליאני | false < true |
— |
| בייטים | סדר הבייטים | במסדי נתונים במהדורת Standard, הערך לא יכול להיות גדול מ-1,048,487 בייט (1MiB – 89 בייט), והשאילתות מתייחסות רק ל-1,500 הבייטים הראשונים. במסדי נתונים במהדורת Enterprise, אין הגבלה על גודל הערך (מלבד מגבלות הגודל של מסמכים ורשומות באינדקס), והערך המלא נלקח בחשבון בשאילתות. |
| תאריך ושעה | כרונולוגי | כשמאחסנים את הנתונים ב-Cloud Firestore, הם מדויקים רק עד מיקרו-שניות. כל דיוק נוסף מעוגל כלפי מטה. |
| מספר בשיטת נקודה צפה | Numeric | דיוק כפול של 64 ביט לפי IEEE 754, כולל (נורמליזציה) NaN ו-+/-Infinity. |
| נקודה גיאוגרפית | לפי קו רוחב, ואז לפי קו אורך | כדי לחפש לפי מרחק, אפשר לעיין במאמר בנושא חיפוש גיאוגרפי. |
| מספר שלם | Numeric | 64 ביט, חתום |
| מפה | לפי מפתחות, ואז לפי ערך | מייצג אובייקט שמוטמע במסמך. אחרי שמוסיפים שדות לאינדקס, אפשר להריץ שאילתות על שדות משנה. אם תחרגו מהכללה של הערך הזה באינדקס, גם כל שדות המשנה יוחרגו מהכללה באינדקס.
סדר המפתחות תמיד ממוין. לדוגמה, אם כותבים
השדות של המיפוי ממוינים לפי מפתח ומושווים לפי צמדי מפתח-ערך. קודם מושווים המפתחות ואחר כך הערכים. אם צמדי המפתח/ערך הראשונים שווים, מתבצעת השוואה בין צמדי המפתח/ערך הבאים, וכן הלאה. אם לשתי מפות יש את כל אותם צמדים של מפתח/ערך, אורך המפה נלקח בחשבון. לדוגמה, המפות הבאות מסודרות בסדר עולה:
|
| Null | ללא | — |
| חומרי עזר | לפי רכיבי נתיב (אוסף, מזהה מסמך, אוסף, מזהה מסמך...) | לדוגמה, projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH]. |
| מחרוזת טקסט | סדר הבייטים בקידוד UTF-8 | במסדי נתונים במהדורת Standard, הערך לא יכול להיות גדול מ-1,048,487 בייט (1MiB – 89 בייט), והשאילתות מתייחסות רק ל-1,500 הבייטים הראשונים. במסדי נתונים במהדורת Enterprise, אין הגבלה על גודל הערך (מלבד מגבלות הגודל של מסמכים ורשומות באינדקס), והערך המלא נלקח בחשבון בשאילתות. |
| Vector | לפי מאפיין ואז לפי ערכי רכיבים בודדים | המימד המקסימלי של הטמעות שנתמך הוא 2048. כדי לאחסן וקטורים עם מימדים גדולים יותר, משתמשים בהפחתת מימדים. |
סדר של סוגי ערכים
כששאילתה כוללת שדה עם ערכים מסוגים שונים, Cloud Firestore משתמשת בסדר דטרמיניסטי שמבוסס על הייצוגים הפנימיים. הרשימה הבאה מציגה את הסדר:
- ערכי Null
- ערכים בוליאניים
- ערכים של מספרים שלמים ומספרים בשיטת נקודה צפה, ממוינים בסדר מספרי
- ערכי תאריכים
- ערכים של מחרוזות טקסט
- ערכי בייט
- Cloud Firestore references
- ערכי נקודות גיאוגרפיים
- ערכי מערך
- הטמעות וקטוריות
- מיפוי ערכים
סידור מספרי
Cloud Firestore ממיין את כל הערכים המספריים (Integer ו-Floating point) באופן משולב. ההשוואה של מספרים ממשיים מתבצעת לפי הסדר הכולל של IEEE 754, עם חריגה משמעותית אחת: Cloud Firestore מבצע נורמליזציה של כל הערכים של NaN, ומתייחס אליו כאל ערך קטן מ--Infinity.