انواع داده های پشتیبانی شده

این صفحه انواع داده‌هایی را که Cloud Firestore پشتیبانی می‌کند، شرح می‌دهد.

انواع داده

جدول زیر انواع داده‌های پشتیبانی‌شده توسط Cloud Firestore را فهرست می‌کند. همچنین ترتیب مرتب‌سازی مورد استفاده هنگام مقایسه مقادیر از یک نوع را شرح می‌دهد:

نوع داده ترتیب مرتب‌سازی یادداشت‌ها
آرایه بر اساس مقادیر عناصر

یک آرایه نمی‌تواند مقدار آرایه دیگری را به عنوان یکی از عناصر خود داشته باشد.

در یک آرایه، عناصر موقعیت اختصاص داده شده به خود را حفظ می‌کنند. هنگام مرتب‌سازی دو یا چند آرایه، آرایه‌ها بر اساس مقادیر عناصرشان مرتب می‌شوند.

هنگام مقایسه دو آرایه، عناصر اول هر آرایه با هم مقایسه می‌شوند. اگر عناصر اول برابر باشند، عناصر دوم با هم مقایسه می‌شوند و به همین ترتیب ادامه می‌یابد تا تفاوتی پیدا شود. اگر عناصر یک آرایه برای مقایسه تمام شود اما تا آن نقطه برابر باشند، آرایه کوتاه‌تر قبل از آرایه بلندتر مرتب می‌شود.

برای مثال، [1, 2, 3] < [1, 2, 3, 1] < [2] . آرایه [2] بزرگترین مقدار عنصر اول را دارد. آرایه [1, 2, 3] دارای عناصری برابر با سه عنصر اول آرایه [1, 2, 3, 1] است اما طول آن کوتاه‌تر است.

بولی false < true
بایت ترتیب بایت تا ۱,۰۴۸,۴۸۷ بایت (۱ مگابایت - ۸۹ بایت). فقط ۱۵۰۰ بایت اول توسط پرس‌وجوها در نظر گرفته می‌شوند.
تاریخ و زمان گاهشمار وقتی در Cloud Firestore ذخیره می‌شود، فقط تا میکروثانیه دقیق است؛ هر دقت اضافی به پایین گرد می‌شود.
عدد ممیز شناور عددی دقت مضاعف ۶۴ بیتی مطابق با 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"}

تهی هیچکدام
مرجع بر اساس عناصر مسیر (مجموعه، شناسه سند، مجموعه، شناسه سند...) برای مثال، projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH] .
رشته متن ترتیب بایت‌های کدگذاری شده UTF-8 تا ۱,۰۴۸,۴۸۷ بایت (۱ مگابایت - ۸۹ بایت). فقط ۱۵۰۰ بایت اول نمایش UTF-8 توسط پرس‌وجوها در نظر گرفته می‌شود.
بردار بر اساس بعد و سپس بر اساس مقادیر تک تک عناصر حداکثر بُعد جاسازی پشتیبانی‌شده ۲۰۴۸ است. برای ذخیره بردارهایی با ابعاد بزرگتر، از کاهش ابعاد استفاده کنید.

مرتب‌سازی نوع مقدار

وقتی یک پرس‌وجو شامل فیلدی با مقادیری از انواع مختلط باشد، Cloud Firestore از یک ترتیب قطعی بر اساس نمایش‌های داخلی استفاده می‌کند. لیست زیر این ترتیب را نشان می‌دهد:

  1. مقادیر تهی
  2. مقادیر بولی
  3. مقادیر صحیح و اعشاری، مرتب شده به ترتیب عددی
  4. مقادیر تاریخ
  5. مقادیر رشته متنی
  6. مقادیر بایت
  7. منابع Cloud Firestore
  8. مقادیر نقاط جغرافیایی
  9. مقادیر آرایه
  10. جاسازی‌های برداری
  11. مقادیر نقشه

مرتب‌سازی عددی

Cloud Firestore تمام مقادیر عددی ( Integer و Floating point ) را که با یکدیگر در هم آمیخته شده‌اند، مرتب می‌کند. مقایسه اعداد اعشاری از ترتیب کلی IEEE 754 پیروی می‌کند، با این تفاوت که Cloud Firestore تمام مقادیر NaN را نرمال‌سازی می‌کند و آن را کمتر از -Infinity در نظر می‌گیرد.