หน้านี้อธิบายประเภทข้อมูลที่ Cloud Firestore รองรับ
ประเภทข้อมูล
ตารางต่อไปนี้แสดงประเภทข้อมูลที่ Cloud Firestore รองรับ นอกจากนี้ ยังอธิบายลำดับการจัดเรียงที่ใช้เมื่อเปรียบเทียบค่าประเภทเดียวกันด้วย
ประเภทข้อมูล | ลำดับการจัดเรียง | หมายเหตุ |
---|---|---|
อาร์เรย์ | ตามค่าองค์ประกอบ |
อาร์เรย์ไม่สามารถมีค่าอาร์เรย์อื่นเป็นองค์ประกอบได้ ภายในอาร์เรย์ องค์ประกอบจะคงตำแหน่งที่กำหนดไว้ เมื่อจัดเรียงอาร์เรย์ 2 รายการขึ้นไป ระบบจะจัดเรียงอาร์เรย์ตามค่าขององค์ประกอบ เมื่อเปรียบเทียบอาร์เรย์ 2 รายการ ระบบจะเปรียบเทียบองค์ประกอบแรกของแต่ละอาร์เรย์ หากองค์ประกอบแรกเท่ากัน ระบบจะเปรียบเทียบองค์ประกอบที่สอง และดำเนินการต่อไปเรื่อยๆ จนกว่าจะพบความแตกต่าง หากอาร์เรย์มีองค์ประกอบไม่เพียงพอ ที่จะเปรียบเทียบ แต่เท่ากันจนถึงจุดนั้น ระบบจะจัดเรียงอาร์เรย์ที่สั้นกว่า ก่อนอาร์เรย์ที่ยาวกว่า เช่น |
บูลีน | false < true |
— |
ไบต์ | ลำดับไบต์ | สูงสุด 1,048,487 ไบต์ (1 MiB - 89 ไบต์) คำค้นหาจะพิจารณาเฉพาะ 1,500 ไบต์แรก เท่านั้น |
วันที่และเวลา | ตามลำดับเวลา | เมื่อจัดเก็บใน Cloud Firestore จะมีความแม่นยำถึงระดับไมโครวินาทีเท่านั้น ความแม่นยำเพิ่มเติมจะปัดเศษลง |
จำนวนจุดลอยตัว | ตัวเลข | ความแม่นยำแบบทศนิยมคู่ 64 บิตตาม IEEE 754 รวมถึง NaN และ +/-Infinity (แบบปกติ) |
จุดทางภูมิศาสตร์ | ตามละติจูด แล้วจึงเป็นตามลองจิจูด | ขณะนี้เราไม่แนะนำให้ใช้ข้อมูลประเภทนี้เนื่องจากข้อจำกัดในการค้นหา โดยทั่วไปแล้ว การจัดเก็บละติจูดและลองจิจูดเป็นฟิลด์ตัวเลขแยกกันจะดีกว่า หากแอปของคุณต้องการการค้นหาทางภูมิศาสตร์แบบง่ายตามระยะทาง โปรดดูการค้นหาทางภูมิศาสตร์ |
จำนวนเต็ม | ตัวเลข | 64 บิต มีการลงนาม |
แผนที่ | ตามคีย์ แล้วตามค่า | แสดงออบเจ็กต์ที่ฝังไว้ในเอกสาร เมื่อจัดทำดัชนีแล้ว คุณจะค้นหาในฟิลด์ย่อยได้ หากคุณยกเว้นค่านี้จากการจัดทำดัชนี ระบบจะยกเว้นฟิลด์ย่อยทั้งหมด จากการจัดทำดัชนีด้วย
ระบบจะจัดเรียงคีย์การเรียงลำดับเสมอ เช่น หากคุณเขียน
ฟิลด์แผนที่จะจัดเรียงตามคีย์และเปรียบเทียบตามคู่คีย์-ค่า โดยจะเปรียบเทียบคีย์ก่อน แล้วจึงเปรียบเทียบค่า หากคู่คีย์-ค่าแรกเท่ากัน ระบบจะเปรียบเทียบคู่คีย์-ค่าถัดไป และดำเนินการต่อไปเรื่อยๆ หากแผนที่ 2 รายการมีคู่คีย์-ค่าเหมือนกันทั้งหมด ระบบจะพิจารณาความยาวของแผนที่ ตัวอย่างเช่น แผนที่ต่อไปนี้เรียงตามลำดับจากน้อยไปมาก
|
Null | ไม่มี | — |
ข้อมูลอ้างอิง | ตามองค์ประกอบเส้นทาง (คอลเล็กชัน รหัสเอกสาร คอลเล็กชัน รหัสเอกสาร...) | เช่น projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH] |
สตริงข้อความ | ลำดับไบต์ที่เข้ารหัส UTF-8 | สูงสุด 1,048,487 ไบต์ (1 MiB - 89 ไบต์) การค้นหาจะพิจารณาเฉพาะไบต์ 1,500 ไบต์แรกของ การแสดง UTF-8 |
Vector | ตามมิติข้อมูล แล้วตามค่าองค์ประกอบแต่ละรายการ | มิติข้อมูลการฝังสูงสุดที่รองรับคือ 2048 หากต้องการจัดเก็บเวกเตอร์ที่มี มิติข้อมูลขนาดใหญ่ ให้ใช้การลดมิติ |
การจัดเรียงประเภทค่า
เมื่อการค้นหามีฟิลด์ที่มีค่าเป็นประเภทผสม Cloud Firestore จะใช้การจัดลำดับที่แน่นอนตามการแสดงภายใน รายการต่อไปนี้แสดงลำดับ
- ค่า Null
- ค่าบูลีน
- ค่าจำนวนเต็มและค่าทศนิยมที่จัดเรียงตามลำดับตัวเลข
- ค่าวันที่
- ค่าสตริงข้อความ
- ค่าไบต์
- ข้อมูลอ้างอิง Cloud Firestore รายการ
- ค่าจุดทางภูมิศาสตร์
- ค่าอาร์เรย์
- การฝังเวกเตอร์
- ค่าแผนที่
การจัดเรียงตัวเลข
Cloud Firestore จะจัดเรียงค่าตัวเลขทั้งหมด (Integer
& Floating point
)
สลับกัน การเปรียบเทียบจำนวนทศนิยมเป็นไปตามลำดับทั้งหมดของ IEEE 754 โดยมีข้อยกเว้นที่สำคัญคือ Cloud Firestore จะปรับค่า NaN
ทั้งหมดให้เป็นค่าปกติ และถือว่ามีค่าน้อยกว่า -Infinity