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

หน้านี้อธิบายประเภทข้อมูลที่ 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. จับคู่ค่า