Types de données acceptés
Cette page décrit les types de données compatibles avec Firestore.
Types de données
Le tableau suivant répertorie les types de données compatibles avec Firestore. Il décrit également l'ordre de tri utilisé lors de la comparaison de valeurs du même type :
Type de données | Ordre de tri | Notes |
---|---|---|
Tableau | Par valeur des éléments |
Un tableau ne peut pas contenir un élément correspondant à la valeur d'un autre tableau. Dans un tableau, les éléments conservent la position qui leur est attribuée. Lorsque vous triez deux ou plusieurs tableaux, les tableaux sont classés en fonction des valeurs d'éléments.
Lorsque vous comparez deux tableaux, les premiers éléments de chaque tableau sont comparés. Si les premiers éléments sont égaux, les deuxièmes éléments sont comparés et ainsi de suite jusqu'à ce qu'une différence soit trouvée. Si un tableau ne contient plus d'éléments à comparer, mais que les éléments comparés jusqu'ici sont égaux, alors le tableau le plus court est placé devant le tableau le plus long. Par exemple, |
Booléen | false < true |
— |
Octets | Ordre des octets | Jusqu'à 1 048 487 octets (1 Mio – 89 octets). Seuls les 1 500 premiers octets sont pris en compte par les requêtes. |
Date et heure | Chronologique | En cas de stockage dans Firestore, limitez la précision aux microsecondes. Toute précision supplémentaire est arrondie à la baisse. |
Nombre à virgule flottante | Numérique | Double précision 64 bits, IEEE 754. |
Point géographique | En fonction de la latitude, puis de la longitude | Pour le moment, nous ne recommandons pas l'utilisation de ce type de données en raison des limites en termes de requête. Il est généralement préférable de stocker la latitude et la longitude sous forme de champs numériques distincts. Si votre application nécessite des requêtes géographiques simples basées sur la distance, consultez la page Requêtes de données géographiques. |
Entier | Numérique | 64 bits, signé |
Mappage | Par clé, puis par valeur | Représente un objet intégré dans un document. Lors de l'indexation, vous pouvez effectuer une requête sur les sous-champs. Si vous excluez cette valeur de l'indexation, tous les sous-champs en sont également exclus.
L'ordre des clés est toujours trié. Par exemple, si vous écrivez Les champs de mappage sont triés par clé et comparés par paires clé/valeur, en commençant par comparer les clés, puis les valeurs. Si les premières paires clé/valeur sont égales, les paires clé/valeur suivantes sont comparées, et ainsi de suite. Si deux mappages comportent toutes les mêmes paires clé/valeur, la longueur du mappage est prise en compte. Par exemple, les mappages suivants sont classés par ordre croissant :
|
NaN | Aucun | — |
Vide | Aucun | — |
Référence | Par élément de chemin d'accès (collection, ID de document, collection, ID de document...) | Par exemple, projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH] . |
Chaîne de texte | Ordre des octets encodés au format UTF-8 | Jusqu'à 1 048 487 octets (1 Mio – 89 octets). Seuls les 1 500 premiers octets de la représentation UTF-8 sont pris en compte par les requêtes. |
Vecteur | Par dimension, puis par valeur des éléments individuels | La dimension d'imbrication maximale acceptée est de 2 048. Pour stocker des vecteurs de dimensions plus élevées, utilisez la réduction de la dimensionnalité. |
Ordre des types de valeurs
Lorsqu'une requête implique un champ avec des valeurs de types mixtes, Firestore utilise un ordre déterministe basé sur les représentations internes. La liste suivante indique l'ordre :
- Valeurs nulles
- Valeurs booléennes
- Valeurs NaN
- Entiers et nombres à virgule flottante, triés par ordre numérique
- Valeurs de date
- Valeurs de chaîne de texte
- Valeurs de type octet
- Références Firestore
- Valeurs de point géographique
- Valeurs de tableau
- Représentations vectorielles continues
- Valeurs de mappage