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