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