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

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

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

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

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

อาร์เรย์ต้องไม่มีค่าอาร์เรย์อื่นเป็นองค์ประกอบหนึ่ง

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

เมื่อเปรียบเทียบอาร์เรย์ 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 ไบต์แรกเท่านั้นในการค้นหา
วันที่และเวลา ตามลำดับเวลา เมื่อจัดเก็บใน Cloud Firestore จะมีความแม่นยำเป็นไมโครวินาทีเท่านั้น ระบบจะปัดเศษความแม่นยำเพิ่มเติม
จำนวนจุดลอยตัว ตัวเลข ความแม่นยำสองเท่า 64 บิต IEEE 754
จุดทางภูมิศาสตร์ ตามละติจูด แล้วจึงตามด้วยลองจิจูด ปัจจุบันเราไม่แนะนําให้ใช้ข้อมูลประเภทนี้เนื่องจากข้อจํากัดในการค้นหา โดยทั่วไป ควรจัดเก็บละติจูดและลองจิจูดเป็นฟิลด์ตัวเลขแยกกัน หากแอปของคุณต้องการภูมิศาสตร์ที่อิงตามระยะทางอย่างง่าย โปรดดูการค้นหาทางภูมิศาสตร์
จำนวนเต็ม ตัวเลข 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"}

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

การจัดลำดับประเภทค่า

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

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