Method: projects.databases.documents.runQuery

Exécute une requête.

Requête HTTP

POST https://firestore.googleapis.com/v1/{parent=projects/*/databases/*/documents}:runQuery

L'URL utilise la syntaxe de transcodage gRPC.

Paramètres de chemin d'accès

Paramètres
parent

string

Obligatoire. Nom de la ressource parente. Format à respecter: projects/{projectId}/databases/{databaseId}/documents ou projects/{projectId}/databases/{databaseId}/documents/{document_path}. Par exemple: projects/my-project/databases/my-database/documents ou projects/my-project/databases/my-database/documents/chatrooms/my-chatroom.

Corps de la requête

Le corps de la requête contient des données présentant la structure suivante :

Représentation JSON
{
  "explainOptions": {
    object (ExplainOptions)
  },

  // Union field query_type can be only one of the following:
  "structuredQuery": {
    object (StructuredQuery)
  }
  // End of list of possible types for union field query_type.

  // Union field consistency_selector can be only one of the following:
  "transaction": string,
  "newTransaction": {
    object (TransactionOptions)
  },
  "readTime": string
  // End of list of possible types for union field consistency_selector.
}
Champs
explainOptions

object (ExplainOptions)

Facultatif. Expliquez les options de la requête. Si cette option est définie, des statistiques de requête supplémentaires sont renvoyées. Si ce n'est pas le cas, seuls les résultats de la requête seront renvoyés.

Champ d'union query_type. Requête à exécuter. query_type ne peut être qu'un des éléments suivants :
structuredQuery

object (StructuredQuery)

Une requête structurée

Champ d'union consistency_selector. Mode de cohérence pour cette transaction. Si ce champ n'est pas spécifié, la valeur par défaut est la cohérence forte. consistency_selector ne peut être qu'un des éléments suivants :
transaction

string (bytes format)

Exécutez la requête dans une transaction déjà active.

La valeur ici est l'ID de transaction opaque dans lequel exécuter la requête.

Chaîne encodée en base64.

newTransaction

object (TransactionOptions)

Démarre une nouvelle transaction et lit les documents. La valeur par défaut est une transaction en lecture seule. Le nouvel ID de transaction est renvoyé en tant que première réponse dans le flux.

readTime

string (Timestamp format)

Lit les documents tels qu'ils étaient à l'époque.

Il doit s'agir d'un horodatage de précision de l'ordre de la microseconde au cours de la dernière heure. Si la récupération à un moment précis est activée, il peut également s'agir d'un horodatage d'une minute entière datant des sept derniers jours.

Code temporel au format RFC3339 UTC "Zulu", avec une résolution à la nanoseconde et jusqu'à neuf chiffres après la virgule. Exemples: "2014-10-02T15:01:23Z" et "2014-10-02T15:01:23.045123456Z".

Corps de la réponse

Réponse pour Firestore.RunQuery.

Si la requête aboutit, le corps de la réponse contient des données qui ont la structure suivante :

Représentation JSON
{
  "transaction": string,
  "document": {
    object (Document)
  },
  "readTime": string,
  "skippedResults": integer,
  "explainMetrics": {
    object (ExplainMetrics)
  },

  // Union field continuation_selector can be only one of the following:
  "done": boolean
  // End of list of possible types for union field continuation_selector.
}
Champs
transaction

string (bytes format)

Transaction démarrée dans le cadre de cette requête. Ne peut être défini que dans la première réponse, et uniquement si RunQueryRequest.new_transaction a été défini dans la requête. Si cette valeur est définie, aucun autre champ ne sera défini dans cette réponse.

Chaîne encodée en base64.

document

object (Document)

Résultat de requête non défini lors de la création de rapports sur une progression partielle.

readTime

string (Timestamp format)

Heure à laquelle le document a été lu. L'augmentation peut être monotone. Dans ce cas, il est garanti que les documents précédents dans le flux de résultats n'ont pas changé entre leur readTime et celui-ci.

Si la requête ne renvoie aucun résultat, une réponse contenant readTime et aucun document sera envoyée, ce qui représente l'heure à laquelle la requête a été exécutée.

Code temporel au format RFC3339 UTC "Zulu", avec une résolution à la nanoseconde et jusqu'à neuf chiffres après la virgule. Exemples: "2014-10-02T15:01:23Z" et "2014-10-02T15:01:23.045123456Z".

skippedResults

integer

Nombre de résultats ignorés en raison d'un décalage entre la dernière réponse et la réponse actuelle.

explainMetrics

object (ExplainMetrics)

Métriques d'explication des requêtes. Il n'est présent que lorsque le RunQueryRequest.explain_options est fourni. Il n'est envoyé qu'une seule fois avec la dernière réponse du flux.

Champ d'union continuation_selector. Mode de continuation de la requête. S'il est présent, il indique que le flux de réponse à la requête actuel est terminé. Ce champ peut être défini avec ou sans document, mais lorsqu'il est défini, aucun autre résultat n'est renvoyé. La continuation_selector ne peut être qu'un des éléments suivants :
done

boolean

S'il est présent, Firestore a complètement finalisé la requête, et aucun autre document ne sera renvoyé.

Champs d'application des autorisations

Nécessite l'un des champs d'application OAuth suivants :

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Pour en savoir plus, consultez la page Présentation de l'authentification.