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

หน้านี้อธิบายประเภทข้อมูลที่ Cloud Firestore รองรับ

ประเภทข้อมูล

ตารางต่อไปนี้แสดงประเภทข้อมูลที่ Cloud Firestore รองรับ ทั้งนี้ ยังอธิบายลำดับการจัดเรียงที่ใช้เปรียบเทียบค่าของประเภทเดียวกันด้วย ดังนี้

ประเภทข้อมูล ลำดับการจัดเรียง หมายเหตุ
อาร์เรย์ ตามค่าองค์ประกอบ

อาร์เรย์ต้องไม่มีค่าอาร์เรย์อื่นเป็นองค์ประกอบหนึ่ง

ภายในอาร์เรย์ องค์ประกอบจะรักษาตำแหน่งที่กำหนดไว้ให้ เมื่อจัดเรียงอาร์เรย์ 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 จะมีความแม่นยำเป็นไมโครวินาทีเท่านั้น ไม่จำกัด ระบบจะปัดเศษทศนิยมลง
จำนวนจุดลอยตัว ตัวเลข ความแม่นยำสองเท่า 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. จับคู่ค่า