Firestore en mode Datastore (Datastore) est compatible avec divers types de données pour les valeurs de propriété, parmi lesquels :
- Entiers
- Nombres à virgule flottante
- Chaînes
- Dates
- Données binaires
Pour obtenir la liste complète des types, consultez la section Propriétés et types de valeurs.
Propriétés et types de valeurs
Les valeurs de données associées à une entité consistent en une ou plusieurs propriétés. Chaque propriété a un nom, et une ou plusieurs valeurs. Une propriété peut avoir des valeurs de plus d'un type, et deux entités peuvent avoir des valeurs de types différents pour la même propriété. Les propriétés peuvent être indexées ou non indexées (les requêtes qui ordonnent ou filtrent une propriété P ignorent les entités pour lesquelles P n'est pas indexée.) Une entité peut avoir 20 000 propriétés indexées au maximum.
Les types de valeurs suivants sont acceptés :
Type de valeur | Type(s) Go | Ordre de tri | Notes |
---|---|---|---|
Entier | int int8 int16 int32 int64 |
Numérique | Entier de 64 bits, signé |
Nombre à virgule flottante | float32 float64 |
Numérique | Double précision 64 bits, IEEE 754. |
Booléen | bool |
false <true |
|
Chaîne (courte) | string |
Unicode |
Jusqu'à 1 500 octets |
Chaîne (longue) | string (avec noindex ) |
Aucun | Jusqu'à 1 mégaoctet Non indexé |
Tranche d'octets (courte) | datastore.ByteString |
Ordre des octets | Jusqu'à 1 500 octets |
Tranche d'octets (longue) | []byte |
Aucun | Jusqu'à 1 mégaoctet Non indexé |
Date et heure | time.Time |
Chronologique | |
Point géographique | appengine.GeoPoint |
En fonction de la latitude, puis de la longitude |
|
Clé Datastore | *datastore.Key |
Par éléments de chemin d'accès (genre, identifiant, genre, identifiant, etc.) |
|
Clé Blobstore | appengine.BlobKey |
Ordre des octets |
Vous pouvez également agréger des propriétés à l'aide d'un élément struct
ou slice
. Pour en savoir plus, consultez la documentation de référence de Datastore.
Lorsqu'une requête implique une propriété avec des valeurs de types mixtes, Datastore utilise un ordre déterministe basé sur les représentations internes :
- Valeurs Null
- Nombres à virgule fixe
- Entiers
- Dates et heures
- Valeurs booléennes
- Séquences d'octets
- Tranches d'octets (courtes)
- Chaîne Unicode
- Clés Blobstore
- Nombres à virgule flottante
- Points géographiques
- Clés Datastore
Étant donné que les tranches d'octets longues et les chaînes longues ne sont pas indexées, aucun tri n'est défini pour celles-ci.