סוגי נתונים נתמכים

בדף הזה מתוארים סוגי הנתונים שנתמכים ב-Firestore.

סוגי הנתונים

בטבלה הבאה מפורטים סוגי הנתונים שנתמכים ב-Firestore. היא גם מתארת את סדר המיון שמשמש להשוואה בין ערכים מאותו סוג:

סוג נתונים סדר מיון הערות
מספר שלם של 32 ביט Numeric

‫32 ביט, חתום

הערה: נתמך רק במהדורת Enterprise.

מספר שלם של 64 ביט Numeric ‫64 ביט, חתום
מערך לפי ערכי רכיבים

במסדי נתונים במהדורת Standard, מערך לא יכול להכיל ערך של מערך אחר כאחד מהרכיבים שלו. במסדי נתונים במהדורת Enterprise, מערך יכול להכיל ערך של מערך כאחד מהרכיבים שלו.

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

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

לדוגמה, [1, 2, 3] < [1, 2, 3, 1] < [2]. למערך [2] יש את הערך הגבוה ביותר של הרכיב הראשון. המערך [1, 2, 3] מכיל רכיבים ששווים לשלושת הרכיבים הראשונים של [1, 2, 3, 1], אבל הוא קצר יותר.

בוליאני false < true —
חותמת זמן של BSON כרונולוגי

ערך של חותמת זמן של 64 ביט, שמורכב משניות של Unix וממונה מצטבר.

הערה: נתמך רק במהדורת Enterprise.

בייטים סדר הבייטים במסדי נתונים במהדורת Standard, הערך לא יכול להיות גדול מ-1,048,487 בייטים (‎1 MiB - 89 בייטים), ורק 1,500 הבייטים הראשונים נכללים בשאילתות. במסדי נתונים במהדורת Enterprise, אין מגבלה על גודל הערך (מלבד מגבלות הגודל של המסמך ושל הרשומה באינדקס) והערך המלא נכלל בשאילתות.
בייטים עם סוג משנה סדר הבייטים (סוג משנה ואז ערך)

רצף בייטים בינארי עם אינדיקטור של סוג משנה של BSON.

הערה: נתמך רק במהדורת Enterprise.

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

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

הערה: נתמך רק במהדורת Enterprise.

מספר בשיטת נקודה צפה Numeric דיוק כפול של 64 ביט לפי IEEE 754, כולל NaN ו-+/-Infinity (מנורמלים).
נקודה גיאוגרפית לפי קו רוחב, ואז לפי קו אורך כדי לחפש לפי מרחק, אפשר לעיין במאמר בנושא חיפוש גיאוגרפי.
מפה לפי מפתחות, ואז לפי ערך

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

סדר המפתחות תמיד ממוין. לדוגמה, אם כותבים {c: "foo", a: "bar", b: "qux"}, המפה ממוינת לפי מפתח ונשמרת בתור {a: "bar", b: "qux", c: "foo"}.

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

{a: "aaa", b: "baz"}
{a: "foo", b: "bar"}
{a: "foo", b: "bar", c: "qux"}
{a: "foo", b: "baz"}
{b: "aaa", c: "baz"}
{c: "aaa"}

מפתח מקסימלי ללא

ערך מיוחד שגבוה יותר מכל הערכים האחרים.

הערה: נתמך רק במהדורת Enterprise.

מפתח מינימלי ללא

ערך מיוחד שבהשוואה לערכים אחרים הוא נמוך יותר מכולם (חוץ מ-null).

הערה: נתמך רק במהדורת Enterprise.

Null ללא —
ObjectId סדר הבייטים

מזהה אובייקט של 12 בייטים.

הערה: נתמך רק במהדורת Enterprise.

חומרי עזר לפי רכיבי נתיב (אוסף, מזהה מסמך, אוסף, מזהה מסמך...) לדוגמה, projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH].
ביטוי רגולרי לפי תבנית, ואז לפי אפשרויות

תבנית ואפשרויות של ביטוי רגולרי.

הערה: נתמך רק במהדורת Enterprise.

מחרוזת טקסט סדר בייטים בקידוד UTF-8 במסדי נתונים במהדורת Standard, הערך לא יכול להיות גדול מ-1,048,487 בייטים (‎1 MiB - 89 בייטים), ורק 1,500 הבייטים הראשונים נכללים בשאילתות. במסדי נתונים במהדורת Enterprise, אין מגבלה על גודל הערך (מלבד מגבלות הגודל של המסמך ושל הרשומה באינדקס) והערך המלא נכלל בשאילתות.
וקטור לפי מאפיין ואז לפי ערכים של רכיבים ספציפיים הגודל המקסימלי של מאפיין ההטמעה שנתמך הוא 2,048. כדי לאחסן וקטורים עם מאפיינים גדולים יותר, צריך להשתמש בהפחתת ממדים.

סדר סוגי הערכים

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

  1. ערכים ריקים
  2. ערכי מפתח מינימליים (מהדורת Enterprise בלבד)
  3. ערכים בוליאניים
  4. ערכים של מספרים שלמים ונקודה צפה (floating-point) של 64 ביט, ממוינים בסדר מספרי. במסדי נתונים של מהדורת Enterprise, נכללים גם ערכים של מספר שלם של 32 ביט ו-Decimal128.
  5. ערכי תאריכים
  6. ערכים של מחרוזות טקסט
  7. ערכי בייטים. במהדורת Enterprise, נכללים גם בייטים עם ערכי סוג משנה.
  8. הפניות ל-Firestore
  9. ערכי ObjectId (מהדורת Enterprise בלבד)
  10. ערכי נקודות גיאוגרפיות
  11. ביטוי רגולרי (מהדורת Enterprise בלבד)
  12. ערכי מערך
  13. הטמעת וקטורים
  14. ערכי מפה
  15. ערכי מפתח מקסימליים (במהדורת Enterprise בלבד)

סדר מספרי

‫Firestore ממיין את כל הערכים המספריים (Integer ו-Floating point) לסירוגין. השוואה של נקודה צפה (floating point) מתבצעת לפי הסדר הכולל של IEEE 754, עם חריגה בולטת אחת: Firestore מנרמל את כל הערכים של NaN, ומחשיב אותם כקטנים מ--Infinity.