หน้านี้อธิบายประเภทข้อมูลของ Cloud Firestore ที่รองรับ
ประเภทข้อมูล
ตารางต่อไปนี้แสดงประเภทข้อมูลที่ Cloud Firestore รองรับ และยังอธิบายลําดับการจัดเรียงที่ใช้เมื่อเปรียบเทียบค่าประเภทเดียวกันด้วย
ประเภทข้อมูล | ลำดับการจัดเรียง | หมายเหตุ |
---|---|---|
อาร์เรย์ | ตามค่าองค์ประกอบ |
อาร์เรย์ต้องไม่มีค่าอาร์เรย์อื่นเป็นองค์ประกอบ ภายในอาร์เรย์ องค์ประกอบจะรักษาตําแหน่งที่กำหนดไว้ เมื่อจัดเรียงอาร์เรย์ตั้งแต่ 2 รายการขึ้นไป ระบบจะจัดเรียงอาร์เรย์ตามค่าขององค์ประกอบ
เมื่อเปรียบเทียบอาร์เรย์ 2 รายการ ระบบจะเปรียบเทียบองค์ประกอบแรกของอาร์เรย์แต่ละรายการ หากองค์ประกอบแรกเท่ากัน ระบบจะเปรียบเทียบองค์ประกอบที่ 2 และดำเนินการต่อจนกว่าจะพบความแตกต่าง หากอาร์เรย์ไม่มีองค์ประกอบที่จะเปรียบเทียบแต่เท่ากันจนถึงจุดนั้น ระบบจะจัดเรียงอาร์เรย์ที่สั้นกว่าก่อนอาร์เรย์ที่ยาวกว่า เช่น |
บูลีน | false < true |
— |
ไบต์ | ลำดับไบต์ | สูงสุด 1,048,487 ไบต์ (1 MiB - 89 ไบต์) การค้นหาจะพิจารณาเฉพาะ 1,500 ไบต์แรกเท่านั้น |
วันที่และเวลา | ตามลำดับเวลา | เมื่อจัดเก็บใน Cloud Firestore จะมีความแม่นยำถึงไมโครวินาทีเท่านั้น ระบบจะปัดเศษความแม่นยำเพิ่มเติมลง |
จํานวนจุดลอยตัว | ตัวเลข | ความละเอียดแบบ Double 64 บิต IEEE 754 |
จุดทางภูมิศาสตร์ | ตามละติจูด แล้วตามด้วยลองจิจูด | ขณะนี้เราไม่แนะนําให้ใช้ประเภทข้อมูลนี้เนื่องจากข้อจํากัดในการค้นหา โดยทั่วไปแล้วการจัดเก็บละติจูดและลองจิจูดเป็นช่องตัวเลขแยกกันจะดีกว่า หากแอปต้องใช้การค้นหาเชิงพื้นที่ตามระยะทางแบบง่าย โปรดดูการค้นหาเชิงพื้นที่ |
จำนวนเต็ม | ตัวเลข | 64 บิต ลงนาม |
แผนที่ | ตามคีย์ แล้วตามค่า | แสดงออบเจ็กต์ที่ฝังอยู่ในเอกสาร เมื่อจัดทำดัชนีแล้ว คุณจะค้นหาในช่องย่อยได้ หากคุณยกเว้นค่านี้จากการจัดทำดัชนี ระบบก็จะยกเว้นช่องย่อยทั้งหมดจากการจัดทำดัชนีด้วย
คีย์การเรียงลําดับจะจัดเรียงอยู่เสมอ เช่น หากคุณเขียน ระบบจะจัดเรียงช่องแผนที่ตามคีย์และเปรียบเทียบตามคู่คีย์-ค่า โดยเปรียบเทียบคีย์ก่อนแล้วจึงเปรียบเทียบค่า หากคู่คีย์-ค่าแรกเท่ากัน ระบบจะเปรียบเทียบคู่คีย์-ค่าถัดไป และดำเนินการต่อ หากแผนที่ 2 แผนที่มีคู่คีย์-ค่าเดียวกันทั้งหมด ระบบจะพิจารณาความยาวของแผนที่ ตัวอย่างเช่น แผนที่ต่อไปนี้จะเรียงตามลําดับจากน้อยไปมาก
|
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 จะใช้การจัดเรียงแบบกำหนดได้ซึ่งอิงตามการแสดงข้อมูลภายใน รายการต่อไปนี้แสดงลําดับ
- ค่า Null
- ค่าบูลีน
- ค่า NaN
- ค่าจำนวนเต็มและค่าทศนิยมที่จัดเรียงตามลําดับตัวเลข
- ค่าวันที่
- ค่าสตริงข้อความ
- ค่าไบต์
- Cloud Firestore ข้อมูลอ้างอิง
- ค่าจุดทางภูมิศาสตร์
- ค่าอาร์เรย์
- การฝังเวกเตอร์
- จับคู่ค่า