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

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

انواع داده‌ها

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

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

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

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

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

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

بولی ‫false < true —
بایت ترتیب بایت در پایگاه‌های داده نسخه Standard، مقدار نباید از ۱٬۰۴۸٬۴۸۷ بایت (۱ مبی‌بایت - ۸۹ بایت) بیشتر باشد و فقط ۱٬۵۰۰ بایت اول توسط پُرسمان‌ها درنظر گرفته می‌شود. در پایگاه‌های داده نسخه Enterprise، هیچ محدودیتی برای اندازه مقدار وجود ندارد (به‌جز محدودیت‌های اندازه سند و ورودی نمایه) و مقدار کامل توسط پُرسمان‌ها درنظر گرفته می‌شود.
تاریخ و ساعت ترتیب زمانی وقتی در Cloud Firestore ذخیره می‌شود، فقط تا میکروثانیه دقیق است؛ هرگونه دقت بیشتر به پایین گرد می‌شود.
عدد ممیز شناور سیستم اعداد دقت مضاعف ۶۴ بیتی طبق IEEE 754، ازجمله (نرمال‌شده) NaN و +/-Infinity.
نقطه جغرافیایی براساس عرض جغرافیایی، سپس طول جغرافیایی برای جستجو براساس فاصله، جستجوی جغرافیایی را ببینید.
عدد صحیح سیستم اعداد ‫۶۴ بیتی، امضاشده
نقشه براساس کلیدها، سپس براساس مقدار

نشان‌دهنده شیء جاسازی‌شده در سند است. وقتی نمایه‌سازی شد، می‌توانید در زیرفیلدها پُرسمان کنید. اگر این مقدار را از نمایه‌سازی مستثنی کنید، همه زیرفیلدها نیز از نمایه‌سازی مستثنی می‌شوند.

ترتیب کلید همیشه مرتب است. برای مثال، اگر {c: "foo", a: "bar", b: "qux"} را بنویسید، نقشه براساس کلید مرتب می‌شود و به‌صورت {a: "bar", b: "qux", c: "foo"} ذخیره می‌شود.

فیلدهای Map براساس کلید مرتب می‌شوند و براساس جفت‌های کلید-مقدار مقایسه می‌شوند، ابتدا کلیدها و سپس مقادیر مقایسه می‌شوند. اگر اولین جفت کلید-مقدار برابر باشند، جفت کلید-مقدار بعدی مقایسه می‌شود و به همین ترتیب ادامه می‌یابد. اگر دو نقشه جفت‌های کلید-مقدار یکسانی داشته باشند، طول نقشه درنظر گرفته می‌شود. برای مثال، نقشه‌های زیر به‌ترتیب صعودی هستند:

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

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

ترتیب نوع مقدار

وقتی پُرسمانی شامل فیلدی با مقادیر از انواع مختلف باشد، 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 درنظر می‌گیرد.