Method: projects.databases.documents.runQuery

Esegue una query.

Richiesta HTTP

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

L'URL utilizza la sintassi di transcodifica gRPC.

Parametri del percorso

Parametri
parent

string

obbligatorio. Il nome della risorsa padre. Nel formato: projects/{projectId}/databases/{databaseId}/documents o projects/{projectId}/databases/{databaseId}/documents/{document_path}. Ad esempio: projects/my-project/databases/my-database/documents o projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

Corpo della richiesta

Il corpo della richiesta contiene dati con la seguente struttura:

Rappresentazione 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.
}
Campi
explainOptions

object (ExplainOptions)

Campo facoltativo. Spiega le opzioni della query. Se impostato, verranno restituite ulteriori statistiche sulle query. In caso contrario, verranno restituiti solo i risultati della query.

Campo di unione query_type. La query da eseguire. query_type può essere solo uno dei seguenti:
structuredQuery

object (StructuredQuery)

Una query strutturata.

Campo di unione consistency_selector. La modalità di coerenza per questa transazione. Se non viene configurato, il valore predefinito è elevata coerenza. consistency_selector può essere solo uno dei seguenti:
transaction

string (bytes format)

Eseguire la query all'interno di una transazione già attiva.

Il valore qui è l'ID transazione opaco in cui eseguire la query.

Una stringa con codifica Base64.

newTransaction

object (TransactionOptions)

Avvia una nuova transazione e legge i documenti. Il valore predefinito è una transazione di sola lettura. Il nuovo ID transazione verrà restituito come prima risposta nel flusso.

readTime

string (Timestamp format)

Legge i documenti così come erano al momento specificato.

Deve essere un timestamp con precisione in microsecondi risalente all'ultima ora oppure, se il recupero point-in-time è abilitato, può essere anche un timestamp di un minuto intero compreso negli ultimi 7 giorni.

Un timestamp in formato "Zulu" RFC3339 UTC, con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

Corpo della risposta

La risposta per Firestore.RunQuery.

In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:

Rappresentazione 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.
}
Campi
transaction

string (bytes format)

La transazione avviata nell'ambito di questa richiesta. Può essere impostato solo nella prima risposta e solo se nella richiesta è stato impostato RunQueryRequest.new_transaction. Se impostato, non verranno impostati altri campi in questa risposta.

Una stringa con codifica Base64.

document

object (Document)

Risultato della query, non impostato quando segnali l'avanzamento parziale.

readTime

string (Timestamp format)

L'ora in cui il documento è stato letto. Questo valore potrebbe aumentare monotonicamente; in questo caso, i documenti precedenti nel flusso di risultati sono garantiti che non siano cambiati tra il relativo readTime e questo.

Se la query non restituisce risultati, verrà inviata una risposta con readTime e nessun document, che rappresenta il momento in cui è stata eseguita la query.

Un timestamp in formato "Zulu" RFC3339 UTC, con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

skippedResults

integer

Il numero di risultati che sono stati ignorati a causa di un offset tra l'ultima risposta e la risposta corrente.

explainMetrics

object (ExplainMetrics)

La query spiega le metriche. È presente solo quando viene fornito il RunQueryRequest.explain_options e viene inviato solo una volta con l'ultima risposta nello stream.

Campo di unione continuation_selector. La modalità di continuazione della query. Se presente, indica che l'attuale flusso di risposta alla query è terminato. Può essere impostato con o senza un document presente, ma se impostato non vengono restituiti altri risultati. continuation_selector può essere solo uno dei seguenti:
done

boolean

Se presente, Firestore ha completato completamente la richiesta e non verranno restituiti altri documenti.

Ambiti di autorizzazione

Richiede uno dei seguenti ambiti OAuth:

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

Per ulteriori informazioni, consulta la Panoramica dell'autenticazione.