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

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

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

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

ประเภทข้อมูล ลำดับการจัดเรียง หมายเหตุ
อาร์เรย์ ตามค่าองค์ประกอบ

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

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

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

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

บูลีน false < true
ไบต์ ลำดับไบต์ ในฐานข้อมูลรุ่นมาตรฐาน ค่าต้องไม่เกิน 1,048,487 ไบต์ (1 MiB - 89 ไบต์) และคําค้นหาจะพิจารณาเฉพาะ 1,500 ไบต์แรกเท่านั้น ในฐานข้อมูลรุ่น Enterprise จะไม่มีการจำกัด ขนาดของค่า (นอกเหนือจากขีดจำกัดขนาดของเอกสารและรายการดัชนี) และการค้นหาจะพิจารณาค่าทั้งหมด
วันที่และเวลา ตามลำดับเวลา เมื่อจัดเก็บใน Cloud Firestore จะมีความแม่นยำถึงระดับไมโครวินาทีเท่านั้น ความแม่นยำเพิ่มเติมจะปัดเศษลง
เลขจุดลอยตัว ตัวเลข ความแม่นยำแบบทศนิยมคู่ 64 บิตตาม IEEE 754 รวมถึง NaN และ +/-Infinity (แบบปกติ)
จุดทางภูมิศาสตร์ ตามละติจูด แล้วจึงเป็นตามลองจิจูด หากต้องการค้นหาตามระยะทาง โปรดดูการค้นหาภูมิสารสนเทศเชิงพื้นที่
จำนวนเต็ม ตัวเลข 64 บิต มีการลงนาม
แผนที่ ตามคีย์ แล้วตามค่า

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

ระบบจะจัดเรียงลำดับคีย์เสมอ เช่น หากคุณเขียน {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"}

Null ไม่มี
ข้อมูลอ้างอิง ตามองค์ประกอบเส้นทาง (คอลเล็กชัน, รหัสเอกสาร, คอลเล็กชัน, รหัสเอกสาร...) เช่น projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH]
สตริงข้อความ ลำดับไบต์ที่เข้ารหัส UTF-8 ในฐานข้อมูลรุ่นมาตรฐาน ค่าต้องไม่เกิน 1,048,487 ไบต์ (1 MiB - 89 ไบต์) และคําค้นหาจะพิจารณาเฉพาะ 1,500 ไบต์แรกเท่านั้น ในฐานข้อมูลรุ่น Enterprise จะไม่มีการจำกัด ขนาดของค่า (นอกเหนือจากขีดจำกัดขนาดของเอกสารและรายการดัชนี) และการค้นหาจะพิจารณาค่าทั้งหมด
Vector ตามมิติข้อมูล แล้วตามค่าองค์ประกอบแต่ละรายการ มิติข้อมูลการฝังสูงสุดที่รองรับคือ 2048 หากต้องการจัดเก็บเวกเตอร์ที่มี มิติข้อมูลขนาดใหญ่ ให้ใช้ การลดมิติ

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

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

  1. ค่า Null
  2. ค่าบูลีน
  3. ค่าจำนวนเต็มและค่าจุดลอยตัวที่จัดเรียงตามลำดับตัวเลข
  4. ค่าวันที่
  5. ค่าสตริงข้อความ
  6. ค่าไบต์
  7. Cloud Firestore การอ้างอิง
  8. ค่าคะแนนทางภูมิศาสตร์
  9. ค่าอาร์เรย์
  10. การฝังเวกเตอร์
  11. ค่าแผนที่

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

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