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

หน้านี้อธิบายประเภทข้อมูลของ 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 จะมีความแม่นยำถึงไมโครวินาทีเท่านั้น ระบบจะปัดเศษความแม่นยำเพิ่มเติมลง
จํานวนจุดลอยตัว ตัวเลข ความละเอียดแบบ Double 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. จับคู่ค่า