Jenis data yang didukung
Halaman ini menjelaskan jenis data yang didukung Firestore.
Jenis data
Tabel berikut mencantumkan jenis data yang didukung oleh Firestore. Tabel ini juga menjelaskan tata urutan yang digunakan saat membandingkan nilai dari jenis yang sama:
Jenis data | Tata urutan | Notes |
---|---|---|
Array | Menurut nilai elemen |
Array tidak dapat berisi nilai array lain sebagai salah satu elemennya. Di dalam array, elemen mempertahankan posisi yang ditetapkan padanya. Saat mengurutkan dua array atau lebih, array tersebut diurutkan berdasarkan nilai elemennya.
Ketika membandingkan dua array, elemen pertama dari setiap array akan dibandingkan. Jika elemen pertama sama, elemen kedua akan dibandingkan, dan seterusnya sampai perbedaan ditemukan. Jika array kehabisan elemen untuk dibandingkan tetapi tetap tidak ditemukan perbedaan, array yang lebih pendek akan diurutkan sebelum array yang lebih panjang. Misalnya, |
Boolean | false < true |
— |
Byte | Urutan byte | Sampai 1.048.487 byte (1 MiB - 89 byte). Hanya 1.500 byte pertama yang dipertimbangkan oleh kueri. |
Tanggal dan waktu | Kronologis | Jika disimpan di Firestore, presisinya hanya hingga mikrodetik; presisi tambahan apa pun akan dibulatkan ke bawah. |
Angka floating-point | Numerik | Presisi ganda 64 bit, IEEE 754. |
Titik geografis | Menurut lintang, lalu bujur | Saat ini kami tidak merekomendasikan penggunaan jenis data ini karena keterbatasan kueri. Umumnya lebih baik menyimpan lintang dan bujur sebagai kolom numerik terpisah. Jika aplikasi Anda memerlukan kueri geografis berbasis jarak yang sederhana, lihat Kueri geografis |
Bilangan bulat | Numerik | 64 bit, ditandai |
Peta | Berdasarkan kunci, baru kemudian nilai | Menunjukkan objek yang disematkan di dalam dokumen. Bila diindeks, Anda dapat membuat kueri pada subkolom. Jika Anda mengecualikan nilai ini dari pengindeksan, semua subkolomnya juga dikecualikan dari pengindeksan.
Urutan kunci selalu diurutkan. Misalnya, jika Anda menulis Kolom peta diurutkan berdasarkan kunci dan dibandingkan menurut key-value pair, pertama-tama kunci akan dibandingkan, kemudian nilainya. Jika key-value pair pertama sama, key-value pair berikutnya akan dibandingkan, dan seterusnya. Jika dua peta memiliki semua key-value pair yang sama, panjang peta akan dipertimbangkan. Misalnya, peta berikut dalam urutan menaik:
|
NaN | Tidak ada | — |
Null | Tidak ada | — |
Referensi | Menurut elemen jalur (koleksi, ID dokumen, koleksi, ID dokumen...) | Misalnya, projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH] . |
String teks | Urutan byte berenkode UTF-8 | Sampai 1.048.487 byte (1 MiB - 89 byte). Hanya 1.500 byte pertama dari representasi UTF-8 yang dipertimbangkan oleh kueri. |
Vector | Menurut dimensi, lalu menurut nilai elemen individual | Dimensi penyematan maksimum yang didukung adalah 2048. Untuk menyimpan vektor dengan dimensi yang lebih besar, gunakan pengurangan dimensi. |
Pengurutan jenis nilai
Saat kueri melibatkan kolom dengan nilai berjenis campuran, Firestore menggunakan pengurutan deterministik berdasarkan representasi internal. Daftar berikut menunjukkan urutannya:
- Nilai null
- Nilai boolean
- Nilai NaN
- Bilangan bulat dan nilai floating-point, diurutkan sesuai urutan numerik
- Nilai tanggal
- Nilai string teks
- Nilai byte
- Referensi Firestore
- Nilai titik geografis
- Nilai array
- Embedding vektor
- Nilai peta