ประเภทข้อมูลที่รองรับ

หน้านี้จะอธิบายประเภทข้อมูลที่ Cloud Firestore รองรับ

ประเภทข้อมูล

ตารางต่อไปนี้แสดงประเภทข้อมูลที่ Cloud Firestore รองรับ นอกจากนี้ยังอธิบายลำดับการจัดเรียงที่ใช้เมื่อเปรียบเทียบค่าประเภทเดียวกัน ดังนี้

ประเภทข้อมูล ลำดับการจัดเรียง หมายเหตุ
จำนวนเต็ม 32 บิต ตัวเลข

32 บิต, มีเครื่องหมาย

หมายเหตุ: รองรับเฉพาะในรุ่น Enterprise เท่านั้น

จำนวนเต็ม 64 บิต ตัวเลข 64 บิต, ลงนามแล้ว
อาร์เรย์ ตามค่าองค์ประกอบ

ในฐานข้อมูลรุ่น Standard อาร์เรย์จะมีค่าอาร์เรย์อื่นเป็นองค์ประกอบหนึ่งไม่ได้ ในฐานข้อมูลรุ่น Enterprise อาร์เรย์อาจมีค่าอาร์เรย์เป็นองค์ประกอบหนึ่งได้

ภายในอาร์เรย์ องค์ประกอบจะคงตำแหน่งที่กำหนดไว้ เมื่อจัดเรียงอาร์เรย์ 2 รายการขึ้นไป ระบบจะจัดเรียงอาร์เรย์ตามค่าองค์ประกอบ

เมื่อเปรียบเทียบอาร์เรย์ 2 รายการ ระบบจะเปรียบเทียบองค์ประกอบแรกของแต่ละอาร์เรย์ หากองค์ประกอบแรกเท่ากัน ระบบจะเปรียบเทียบองค์ประกอบที่ 2 ต่อไปจนกว่าจะพบความแตกต่าง หากอาร์เรย์ไม่มีองค์ประกอบให้เปรียบเทียบแล้ว แต่มีค่าเท่ากันจนถึงจุดนั้น ระบบจะจัดลำดับอาร์เรย์ที่สั้นกว่าก่อนอาร์เรย์ที่ยาวกว่า

เช่น [1, 2, 3] < [1, 2, 3, 1] < [2] อาร์เรย์ [2] มีค่าองค์ประกอบแรกมากที่สุด อาร์เรย์ [1, 2, 3] มีองค์ประกอบเท่ากับ 3 องค์ประกอบแรกของ [1, 2, 3, 1] แต่มีความยาวสั้นกว่า

บูลีน false < true —
การประทับเวลา BSON ตามลำดับเวลา

ค่าการประทับเวลา 64 บิตที่ประกอบด้วยวินาที Unix และตัวนับที่เพิ่มขึ้น

หมายเหตุ: รองรับเฉพาะในรุ่น Enterprise เท่านั้น

ไบต์ ลำดับไบต์ ในฐานข้อมูลรุ่น Standard ค่าต้องไม่เกิน 1,048,487 ไบต์ (1 MiB - 89 ไบต์) และการค้นหาจะพิจารณาเฉพาะ 1,500 ไบต์แรกเท่านั้น ในฐานข้อมูลรุ่น Enterprise จะไม่มีการจำกัดขนาดของค่า (นอกเหนือจากขีดจำกัดขนาดเอกสารและรายการดัชนี) และระบบจะพิจารณาค่าทั้งหมดตามการค้นหา
ไบต์ที่มีประเภทย่อย ลำดับไบต์ (ประเภทย่อย แล้วตามด้วยค่า)

ลำดับไบต์ไบนารีที่มีตัวบ่งชี้ประเภทย่อย BSON

หมายเหตุ: รองรับเฉพาะในรุ่น Enterprise เท่านั้น

วันที่และเวลา ตามลำดับเวลา เมื่อจัดเก็บใน Cloud Firestore จะมีความแม่นยำถึงระดับไมโครวินาทีเท่านั้น โดยจะปัดเศษความแม่นยำที่เกินมาลง
Decimal128 ตัวเลข

เลขจุดลอยตัวทศนิยม 128 บิตสำหรับการคำนวณที่มีความแม่นยำสูง

หมายเหตุ: รองรับเฉพาะในรุ่น Enterprise เท่านั้น

เลขจุดลอยตัว ตัวเลข ความแม่นยำแบบ Double 64 บิตตาม IEEE 754 รวมถึง NaN และ +/-Infinity (ที่ปรับให้เป็นมาตรฐาน)
จุดทางภูมิศาสตร์ ตามละติจูด แล้วจึงเป็นตามลองจิจูด หากต้องการค้นหาตามระยะทาง โปรดดูการค้นหาเชิงภูมิสารสนเทศ
แผนที่ ตามคีย์ แล้วตามด้วยค่า

แสดงออบเจ็กต์ที่ฝังอยู่ภายในเอกสาร เมื่อจัดทำดัชนีแล้ว คุณจะค้นหาในช่องย่อยได้ หากคุณยกเว้นค่านี้จากการจัดทำดัชนี ระบบจะยกเว้นช่องย่อยทั้งหมดจากการจัดทำดัชนีด้วย

ระบบจะจัดเรียงลำดับคีย์เสมอ เช่น หากคุณเขียน {c: "foo", a: "bar", b: "qux"} แผนที่จะจัดเรียงตามคีย์และบันทึกเป็น {a: "bar", b: "qux", c: "foo"}

ระบบจะจัดเรียงช่องแผนที่ตามคีย์และเปรียบเทียบตามคู่คีย์-ค่า โดยจะเปรียบเทียบคีย์ก่อนแล้วจึงเปรียบเทียบค่า หากคู่คีย์-ค่าแรกเท่ากัน ระบบจะเปรียบเทียบคู่คีย์-ค่าถัดไปจนกว่าจะพบความแตกต่าง หากแผนที่ 2 รายการมีคู่คีย์-ค่าเหมือนกันทั้งหมด ระบบจะพิจารณาความยาวของแผนที่ ตัวอย่างเช่น แผนที่ต่อไปนี้เรียงจากน้อยไปมาก

{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 จะไม่มีการจำกัดขนาดของค่า (นอกเหนือจากขีดจำกัดขนาดเอกสารและรายการดัชนี) และระบบจะพิจารณาค่าทั้งหมดตามการค้นหา
เวกเตอร์ ตามมิติข้อมูล แล้วตามด้วยค่าองค์ประกอบแต่ละรายการ มิติข้อมูลการฝังสูงสุดที่รองรับคือ 2048 หากต้องการจัดเก็บเวกเตอร์ที่มีมิติข้อมูลขนาดใหญ่ขึ้น ให้ใช้การลดมิติข้อมูล

การจัดเรียงประเภทค่า

เมื่อการค้นหาเกี่ยวข้องกับฟิลด์ที่มีค่าประเภทผสม Cloud Firestore จะใช้การจัดลำดับเชิงกำหนดตามการแสดงผลภายใน รายการต่อไปนี้แสดงลำดับดังกล่าว

  1. ค่า Null
  2. ค่าคีย์ขั้นต่ำ (รุ่น Enterprise เท่านั้น)
  3. ค่าบูลีน
  4. ค่าจำนวนเต็มและจุดลอยตัวแบบ 64 บิต ซึ่งจัดเรียงตามลำดับตัวเลข ในฐานข้อมูลรุ่น Enterprise จะมีค่าจำนวนเต็ม 32 บิตและค่า Decimal128 รวมอยู่ด้วย
  5. ค่าวันที่
  6. ค่าสตริงข้อความ
  7. ค่าไบต์ ในรุ่น Enterprise จะรวมไบต์ที่มีค่าประเภทย่อยด้วย
  8. ข้อมูลอ้างอิง Cloud Firestore รายการ
  9. ค่า ObjectId (รุ่น Enterprise เท่านั้น)
  10. ค่าจุดทางภูมิศาสตร์
  11. นิพจน์ทั่วไป (รุ่น Enterprise เท่านั้น)
  12. ค่าอาร์เรย์
  13. เวกเตอร์การฝัง
  14. ค่าแผนที่
  15. ค่าของคีย์สูงสุด (รุ่น Enterprise เท่านั้น)

การจัดเรียงตามตัวเลข

Cloud Firestore จะจัดเรียงค่าตัวเลขทั้งหมด (Integer และ Floating point) สลับกันไปมา การเปรียบเทียบจุดลอยตัวจะเป็นไปตามการจัดลำดับทั้งหมดของ IEEE 754 โดยมีข้อยกเว้นที่สำคัญคือ Cloud Firestore จะปรับค่า NaN ทั้งหมดให้เป็นมาตรฐาน และพิจารณาว่าค่านั้นน้อยกว่า -Infinity