בדף הזה מתוארים סוגי הנתונים שנתמכים ב-Cloud Firestore.
סוגי נתונים
בטבלה הבאה מפורטים סוגי הנתונים שנתמכים ב-Cloud Firestore. היא גם מתארת את סדר המיון שמשמש להשוואה בין ערכים מאותו סוג:
| סוג הנתונים | סדר מיון | הערות |
|---|---|---|
| מערך | לפי ערכי רכיבים |
במסדי נתונים במהדורת Standard, מערך לא יכול להכיל ערך של מערך אחר כאחד מהרכיבים שלו. במסדי נתונים במהדורת Enterprise, מערך יכול להכיל ערך של מערך כאחד מהרכיבים שלו. בתוך מערך, הרכיבים שומרים על המיקום שהוקצה להם. כשממיינים שני מערכים או יותר, המערכים מסודרים לפי ערכי הרכיבים שלהם. כשמשווים בין שני מערכים, המערכת משווה בין האיברים הראשונים של כל מערך. אם הרכיבים הראשונים שווים, המערכת משווה בין הרכיבים השניים וכן הלאה עד שהיא מוצאת הבדל. אם במערך נגמרים הרכיבים להשוואה אבל הוא שווה עד לנקודה הזו, המערך הקצר יותר יסודר לפני המערך הארוך יותר. לדוגמה, |
| בוליאני | false < true |
— |
| בייטים | סדר הבייטים | במסדי נתונים במהדורת Standard, הערך לא יכול להיות גדול מ-1,048,487 בייטים (1 MiB - 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 בייטים (1 MiB - 89 בייטים), ורק 1,500 הבייטים הראשונים נכללים בשאילתות. במסדי נתונים במהדורת Enterprise, אין מגבלה על גודל הערך (מלבד מגבלות הגודל של המסמך ושל הרשומה באינדקס) והערך המלא נכלל בשאילתות. |
| וקטור | לפי מאפיין ואז לפי ערכים של רכיבים ספציפיים | הגודל המקסימלי של מאפיין ההטמעה שנתמך הוא 2,048. כדי לאחסן וקטורים עם מאפיינים גדולים יותר, צריך להשתמש בהפחתת ממדים. |
סדר סוגי הערכים
כששאילתה כוללת שדה עם ערכים מסוגים שונים, Cloud Firestore משתמש בסדר דטרמיניסטי שמבוסס על הייצוגים הפנימיים. ברשימה הבאה מוצג הסדר:
- ערכים ריקים
- ערכים בוליאניים
- ערכים של מספרים שלמים ונקודה צפה, ממוינים בסדר מספרי
- ערכי תאריכים
- ערכים של מחרוזות טקסט
- ערכי בייטים
- Cloud Firestore קובצי עזר
- ערכי נקודות גיאוגרפיות
- ערכי מערך
- הטמעת וקטורים
- ערכי מפה
סדר מספרי
הפונקציה Cloud Firestore ממיינת את כל הערכים המספריים (Integer ו-Floating point) כשהם משולבים זה בזה. השוואה של נקודה צפה (floating point) מתבצעת לפי הסדר הכולל של IEEE 754, עם חריגה בולטת אחת: Cloud Firestore מנרמל את כל ערכי NaN, ומתייחס אליהם כקטנים מ--Infinity.