أنواع البيانات المتوافقة

توضّح هذه الصفحة أنواع البيانات التي يتيحها Cloud Firestore.

أنواع البيانات

يسرد الجدول التالي أنواع البيانات المتوافقة مع Cloud Firestore. ويوضّح أيضًا ترتيب الفرز المستخدَم عند مقارنة قيم من النوع نفسه:

نوع البيانات ترتيب التصنيف ملاحظات
مصفوفة حسب قيم العناصر

لا يمكن أن تحتوي المصفوفة على قيمة مصفوفة أخرى كأحد عناصرها.

في المصفوفة، تحتفظ العناصر بالموضع المخصّص لها. عند ترتيب صفيفتين أو أكثر، يتم ترتيب الصفائف استنادًا إلى قيم العناصر.

عند مقارنة مصفوفتين، تتم مقارنة العناصر الأولى من كل مصفوفة. إذا كانت العناصر الأولى متساوية، تتم مقارنة العناصر الثانية وهكذا إلى أن يتم العثور على اختلاف. إذا نفدت عناصر مصفوفة ما للمقارنة ولكنها كانت متساوية حتى تلك النقطة، يتم ترتيب المصفوفة الأقصر قبل المصفوفة الأطول.

على سبيل المثال، [1, 2, 3] < [1, 2, 3, 1] < [2]. تحتوي الصفيفة [2] على أكبر قيمة للعنصر الأول. تحتوي المصفوفة [1, 2, 3] على عناصر تساوي العناصر الثلاثة الأولى من [1, 2, 3, 1]، ولكنها أقصر طولاً.

قيمة منطقية false < true
وحدات البايت ترتيب البايت ما يصل إلى 1,048,487 بايت (1 ميغابايت - 89 بايت) تأخذ طلبات البحث في الاعتبار أول 1,500 بايت فقط.
التاريخ والوقت حسب التسلسل الزمني عند تخزينها في Cloud Firestore، تكون الدقة تصل إلى الميكروثانية فقط، ويتم تقريب أي دقة إضافية إلى أقرب قيمة أقل.
عدد النقطة العائمة رقمي دقة مضاعفة 64 بت وفقًا لمعيار IEEE 754، بما في ذلك NaN و+/-Infinity (الموحّدة).
نقطة جغرافية حسب خط العرض، ثم خط الطول في الوقت الحالي، لا ننصح باستخدام هذا النوع من البيانات بسبب القيود المفروضة على طلبات البحث. من الأفضل عمومًا تخزين خطوط الطول والعرض كحقول رقمية منفصلة. إذا كان تطبيقك يحتاج إلى طلبات بحث جغرافية بسيطة تستند إلى المسافة، اطّلِع على طلبات البحث الجغرافية.
عدد صحيح رقمي ‫64 بت، موقّع
خريطة حسب المفاتيح، ثم حسب القيمة

يمثّل هذا النوع كائنًا مضمّنًا في مستند. عند الفهرسة، يمكنك البحث عن حقول فرعية. في حال استبعاد هذه القيمة من الفهرسة، سيتم أيضًا استبعاد جميع الحقول الفرعية من الفهرسة.

يتم دائمًا ترتيب المفاتيح. على سبيل المثال، إذا كتبت {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 ما يصل إلى 1,048,487 بايت (1 ميغابايت - 89 بايت) تأخذ طلبات البحث في الاعتبار أول 1,500 بايت فقط من تمثيل UTF-8.
المتّجه حسب السمة ثم حسب قيم العناصر الفردية الحد الأقصى لأبعاد التضمين المسموح بها هو 2048. لتخزين المتجهات ذات الأبعاد الأكبر، استخدِم تقنية خفض الأبعاد.

ترتيب أنواع القيم

عندما يتضمّن طلب بحث حقلاً يحتوي على قيم من أنواع مختلطة، تستخدِم 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.