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 | Remarques |
|---|---|---|
| Entier 32 bits | Numérique |
32 bits, signé Remarque : Uniquement disponible dans l'édition Enterprise. |
| Entier 64 bits | Numérique | 64 bits, signé |
| Tableau | Par valeur des éléments |
Dans les bases de données de l'édition Standard, un tableau ne peut pas contenir une autre valeur de tableau comme l'un de ses éléments. Dans les bases de données de l'édition Enterprise, un tableau peut contenir une valeur de tableau comme l'un de ses éléments. 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 |
— |
| Code temporel BSON | Chronologique |
Valeur d'horodatage de 64 bits comprenant des secondes Unix et un compteur d'incrémentation. Remarque : Uniquement disponible dans l'édition Enterprise. |
| Octets | Ordre des octets | Dans les bases de données de l'édition Standard, la valeur ne doit pas dépasser 1 048 487 octets (1 Mio - 89 octets), et seuls les 1 500 premiers octets sont pris en compte par les requêtes. Dans les bases de données de l'édition Enterprise, il n'y a pas de limite à la taille de la valeur (autre que les limites de taille des documents et des entrées d'index), et la valeur complète est prise en compte par les requêtes. |
| Octets avec sous-type | Ordre des octets (sous-type, puis valeur) |
Séquence d'octets binaires avec un indicateur de sous-type BSON. Remarque : Uniquement disponible dans l'édition Enterprise. |
| 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. |
| Decimal128 | Numérique |
Nombre à virgule flottante décimal de 128 bits pour l'arithmétique de haute précision. Remarque : Uniquement disponible dans l'édition Enterprise. |
| Nombre à virgule flottante | Numérique | Double précision 64 bits selon la norme IEEE 754, y compris NaN et +/-Infinity (normalisés). |
| Point géographique | En fonction de la latitude, puis de la longitude | Pour effectuer une recherche basée sur la distance, consultez Recherche géospatiale. |
| Carte | 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 jusqu'à ce qu'une différence soit trouvée. Si deux mappages ont exactement 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 :
|
| Clé maximale | Aucun |
Valeur spéciale qui est supérieure à toutes les autres valeurs. Remarque : Uniquement disponible dans l'édition Enterprise. |
| Clé minimale | Aucun |
Valeur spéciale inférieure à toutes les autres valeurs (sauf null). Remarque : Uniquement disponible dans l'édition Enterprise. |
| Vide | Aucun | — |
| ObjectId | Ordre des octets |
Un identifiant d'objet de 12 octets. Remarque : Uniquement disponible dans l'édition Enterprise. |
| 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]. |
| Expression régulière | Par motif, puis par options |
Modèle d'expression régulière et options. Remarque : Uniquement disponible dans l'édition Enterprise. |
| Chaîne de texte | Ordre des octets encodés au format UTF-8 | Dans les bases de données de l'édition Standard, la valeur ne doit pas dépasser 1 048 487 octets (1 Mio - 89 octets), et seuls les 1 500 premiers octets sont pris en compte par les requêtes. Dans les bases de données de l'édition Enterprise, il n'y a pas de limite à la taille de la valeur (autre que les limites de taille des documents et des entrées d'index), et la valeur complète est prise en compte par les requêtes. |
| Vecteur | Par dimension, puis par valeur d'élément individuel | La dimension d'embedding maximale acceptée est de 2 048. Pour stocker des vecteurs de plus grande dimension, 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 Null
- Valeurs de clé minimales (édition Enterprise uniquement)
- Valeurs booléennes
- Valeurs entières et à virgule flottante de 64 bits, triées par ordre numérique. Dans les bases de données de l'édition Enterprise, les valeurs d'entier 32 bits et Decimal128 sont également incluses.
- Valeurs de date
- Valeurs de chaîne de texte
- Valeurs d'octets. Dans l'édition Enterprise, les octets avec des valeurs de sous-type sont également inclus.
- Références Firestore
- Valeurs ObjectId (édition Enterprise uniquement)
- Valeurs de point géographique
- Expression régulière (édition Enterprise uniquement)
- Valeurs de tableau
- Embeddings vectoriels
- Valeurs de mappage
- Nombre maximal de clés-valeurs (édition Enterprise uniquement)
Tri numérique
Firestore trie toutes les valeurs numériques (Integer et Floating point) entrelacées les unes avec les autres. La comparaison à virgule flottante suit l'ordre total de la norme IEEE 754, à l'exception notable que Firestore normalise toutes les valeurs NaN et les considère comme inférieures à -Infinity.