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