Method: projects.databases.documents.partitionQuery

Particiona una consulta mediante la devolución de cursores de partición que se pueden usar para ejecutar la consulta en paralelo. Los cursores de partición devueltos son puntos de división que se pueden usar en documentos.runQuery como puntos de inicio y finalización para los resultados de la consulta.

Solicitud HTTP

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

La URL usa la sintaxis de la transcodificación gRPC.

Parámetros de ruta de acceso

Parámetros
parent

string

Obligatorio. El nombre del recurso superior. En el formato projects/{projectId}/databases/{databaseId}/documents. No se admiten los nombres de recursos de documentos. solo se pueden especificar nombres de recursos de base de datos.

Cuerpo de la solicitud

El cuerpo de la solicitud contiene datos con la siguiente estructura:

Representación JSON
{
  "partitionCount": string,
  "pageToken": string,
  "pageSize": integer,

  // 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:
  "readTime": string
  // End of list of possible types for union field consistency_selector.
}
Campos
partitionCount

string (int64 format)

La cantidad máxima deseada de puntos de partición. Las particiones se pueden mostrar en varias páginas de resultados. El número debe ser positivo. La cantidad real de particiones que se muestran puede ser menor.

Por ejemplo, se puede establecer en uno menos que la cantidad de consultas paralelas que se ejecutarán o, en la ejecución de un trabajo de canalización de datos, en uno menos que la cantidad de trabajadores o instancias de procesamiento disponibles.

pageToken

string

El valor nextPageToken que se muestra en una llamada anterior a documentos.partitionQuery puede usarse para obtener un conjunto adicional de resultados. No hay garantías de orden entre conjuntos de resultados. Por lo tanto, para usar varios conjuntos de resultados, deberás combinarlos.

Por ejemplo, pueden devolverse dos llamadas posteriores con un pageToken:

  • cursor B, cursor M, cursor Q
  • cursor A, cursor U, cursor W

Para obtener un conjunto de resultados completo ordenado con respecto a los resultados de la consulta suministrada a documentes.partitionQuery, los conjuntos de resultados deben combinarse: cursor A, cursor B, cursor M, cursor Q, cursor U, cursor W

pageSize

integer

La cantidad máxima de particiones que se mostrarán en esta llamada, sujeta a partitionCount.

Por ejemplo, si partitionCount = 10 y pageSize = 8, la primera llamada a documentos.partitionQuery mostrará hasta 8 particiones y una nextPageToken si existen más resultados. Una segunda llamada a documentos.partitionQuery mostrará hasta 2 particiones para completar el total de 10 especificadas en partitionCount.

Campo de unión query_type. La consulta que se particionará. query_type puede ser solo uno de los siguientes:
structuredQuery

object (StructuredQuery)

Una consulta estructurada. La consulta debe especificar la colección con todos los elementos subordinados y estar ordenada por nombre de forma ascendente. No se admiten otros filtros, ordenamientos por, límites, desplazamientos ni cursores de inicio/finalización.

Campo de unión consistency_selector. El modo de coherencia para esta solicitud. Si no está configurado, se establece de forma predeterminada en la coherencia sólida. consistency_selector puede ser solo uno de los siguientes:
readTime

string (Timestamp format)

Lee los documentos tal como estaban en un momento determinado.

Debe ser una marca de tiempo con precisión de microsegundos dentro de la última hora o, si se habilitó la recuperación de un momento determinado, también puede ser una marca de tiempo de un minuto completo dentro de los últimos 7 días.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

Cuerpo de la respuesta

La respuesta para Firestore.PartitionQuery.

Si se ejecuta correctamente, el cuerpo de la respuesta contiene datos con la siguiente estructura:

Representación JSON
{
  "partitions": [
    {
      object (Cursor)
    }
  ],
  "nextPageToken": string
}
Campos
partitions[]

object (Cursor)

Particionar los resultados. Cada partición es un punto de división que document.runQuery puede usar como punto de partida o de finalización para los resultados de la consulta. Las solicitudes de documentos.runQuery se deben realizar con la misma consulta que se proporciona a esta solicitud de document.partitionQuery. Los cursores de partición se ordenarán de acuerdo con el mismo orden que los resultados de la consulta suministrada a documents.partitionQuery.

Por ejemplo, si una solicitud document.partitionQuery muestra cursores de partición A y B, ejecutar las siguientes tres consultas mostrará todo el conjunto de resultados de la consulta original:

  • consulta, finalizar en A
  • consulta, startAt A, endAt B
  • consulta, iniciar en B

Un resultado vacío puede indicar que la consulta tiene muy pocos resultados para particionarse o que aún no es compatible con la partición.

nextPageToken

string

Un token de página que se puede usar para solicitar un conjunto adicional de resultados, hasta el número especificado por partitionCount en la solicitud document.partitionQuery Si se deja en blanco, significa que no hay más resultados.

Alcances de autorización

Se necesita uno de los siguientes permisos de OAuth:

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

Para obtener más información, consulta Descripción general de la autenticación.