StructuredQuery
Una consulta de Firestore.
Representación JSON |
---|
{
"select": {
object (Projection )
},
"from": [
{
object (CollectionSelector )
}
],
"where": {
object (Filter )
},
"orderBy": [
{
object (Order )
}
],
"startAt": {
object (Cursor )
},
"endAt": {
object (Cursor )
},
"offset": integer,
"limit": integer
} |
Campos |
---|
select | object ( Projection ) Subconjunto opcional de los campos a devolver. Esto actúa como DocumentMask sobre los documentos devueltos por una consulta. Cuando no está configurado, se supone que la persona que llama quiere que se le devuelvan todos los campos. |
from[] | object ( CollectionSelector ) Las colecciones a consultar. |
where | object ( Filter ) El filtro a aplicar. |
orderBy[] | object ( Order ) El orden que se aplicará a los resultados de la consulta. Firestore permite a las personas que llaman proporcionar un pedido completo, un pedido parcial o ningún pedido en absoluto. En todos los casos, Firestore garantiza un pedido estable a través de las siguientes reglas: -
orderBy es necesario para hacer referencia a todos los campos utilizados con un filtro de desigualdad. - Todos los campos que deben estar en
orderBy pero que aún no están presentes se agregan en el orden lexicográfico del nombre del campo. - Si no se especifica una orden en
__name__ , se agrega de forma predeterminada.
Los campos se añaden con la misma dirección de clasificación que el último orden especificado, o 'ASCENDENTE' si no se especificó ningún orden. Por ejemplo: -
ORDER BY a se convierte en ORDER BY a ASC, __name__ ASC -
ORDER BY a DESC se convierte en ORDER BY a DESC, __name__ DESC -
WHERE a > 1 se convierte en WHERE a > 1 ORDER BY a ASC, __name__ ASC -
WHERE __name__ > ... AND a > 1 se convierte WHERE __name__ > ... AND a > 1 ORDER BY a ASC, __name__ ASC
|
startAt | object ( Cursor ) Un prefijo potencial de una posición en el conjunto de resultados para iniciar la consulta. El orden del conjunto de resultados se basa en la cláusula ORDER BY de la consulta original. SELECT * FROM k WHERE a = 1 AND b > 2 ORDER BY b ASC, __name__ ASC;
Los resultados de esta consulta están ordenados por (b ASC, __name__ ASC) . Los cursores pueden hacer referencia al orden completo o a un prefijo de la ubicación, aunque no pueden hacer referencia a más campos que los que se encuentran en el ORDER BY proporcionado. Siguiendo con el ejemplo anterior, adjuntar los siguientes cursores de inicio tendrá un impacto variable: -
START BEFORE (2, /k/123) : inicie la consulta justo antes a = 1 AND b > 2 AND __name__ > /k/123 . -
START AFTER (10) : inicie la consulta justo después a = 1 AND b > 10 .
A diferencia de OFFSET , que requiere escanear los primeros N resultados para omitir, un cursor de inicio permite que la consulta comience en una posición lógica. No es necesario que esta posición coincida con un resultado real; escaneará hacia adelante desde esta posición para encontrar el siguiente documento. Requiere: - El número de valores no puede ser mayor que el número de campos especificados en la cláusula
ORDER BY .
|
endAt | object ( Cursor ) Un prefijo potencial de una posición en el conjunto de resultados en la que finalizar la consulta. Esto es similar a START_AT pero controla la posición final en lugar de la posición inicial. Requiere: - El número de valores no puede ser mayor que el número de campos especificados en la cláusula
ORDER BY .
|
offset | integer La cantidad de documentos que se deben omitir antes de devolver el primer resultado. Esto se aplica después de las restricciones especificadas por WHERE , START AT y END AT pero antes de la cláusula LIMIT . Requiere: - El valor debe ser mayor o igual a cero si se especifica.
|
limit | integer El número máximo de resultados que se devolverán. Se aplica después de todas las demás restricciones. Requiere: - El valor debe ser mayor o igual a cero si se especifica.
|
Proyección
La proyección de los campos del documento a devolver.
Campos |
---|
fields[] | object ( FieldReference ) Los campos a devolver. Si está vacío, se devuelven todos los campos. Para devolver solo el nombre del documento, use ['__name__'] . |
Selector de colección
Una selección de una colección, como messages as m1
.
Representación JSON |
---|
{
"collectionId": string,
"allDescendants": boolean
} |
Campos |
---|
collectionId | string El ID de la colección. Cuando se configura, selecciona solo colecciones con este ID. |
allDescendants | boolean Cuando es falso, selecciona solo colecciones que son hijas inmediatas del parent especificado en el RunQueryRequest que lo contiene. Cuando es verdadero, selecciona todas las colecciones descendientes. |
Filtrar
Representación JSON |
---|
{
// Union field filter_type can be only one of the following:
"compositeFilter": {
object (CompositeFilter )
},
"fieldFilter": {
object (FieldFilter )
},
"unaryFilter": {
object (UnaryFilter )
}
// End of list of possible types for union field filter_type .
} |
Campos |
---|
Campo de unión filter_type . El tipo de filtro. filter_type puede ser solo uno de los siguientes: |
compositeFilter | object ( CompositeFilter ) Un filtro compuesto. |
fieldFilter | object ( FieldFilter ) Un filtro en un campo de documento. |
unaryFilter | object ( UnaryFilter ) Un filtro que toma exactamente un argumento. |
Filtro compuesto
Un filtro que combina varios otros filtros utilizando el operador dado.
Representación JSON |
---|
{
"op": enum (Operator ),
"filters": [
{
object (Filter )
}
]
} |
Campos |
---|
op | enum ( Operator ) El operador para combinar múltiples filtros. |
filters[] | object ( Filter ) La lista de filtros para combinar. Requiere: - Al menos un filtro está presente.
|
Operador
Un operador de filtro compuesto.
Enumeraciones |
---|
OPERATOR_UNSPECIFIED | Sin especificar. Este valor no debe utilizarse. |
AND | Se requieren documentos para satisfacer todos los filtros combinados. |
OR | Se requieren documentos para satisfacer al menos uno de los filtros combinados. |
Filtro de campo
Un filtro en un campo específico.
Campos |
---|
field | object ( FieldReference ) El campo por el que filtrar. |
op | enum ( Operator ) El operador por el que filtrar. |
value | object ( Value ) El valor con el que comparar. |
Operador
Un operador de filtro de campo.
Enumeraciones |
---|
OPERATOR_UNSPECIFIED | Sin especificar. Este valor no debe utilizarse. |
LESS_THAN | El field dado es menor que el value dado. Requiere: - Ese
field ocupa el primer lugar en orderBy .
|
LESS_THAN_OR_EQUAL | El field dado es menor o igual que el value dado. Requiere: - Ese
field ocupa el primer lugar en orderBy .
|
GREATER_THAN | El field dado es mayor que el value dado. Requiere: - Ese
field ocupa el primer lugar en orderBy .
|
GREATER_THAN_OR_EQUAL | El field dado es mayor o igual que el value dado. Requiere: - Ese
field ocupa el primer lugar en orderBy .
|
EQUAL | El field dado es igual al value dado. |
NOT_EQUAL | El field dado no es igual al value dado. Requiere: - Ningún otro
NOT_EQUAL , NOT_IN , IS_NOT_NULL o IS_NOT_NAN . - Ese
field ocupa el primer lugar en orderBy .
|
ARRAY_CONTAINS | El field dado es una matriz que contiene el value dado. |
IN | El field dado es igual a al menos un valor en la matriz dada. Requiere: - Ese
value es un ArrayValue no vacío, sujeto a límites de disyunción. - No hay filtros
NOT_IN en la misma consulta.
|
ARRAY_CONTAINS_ANY | El field dado es una matriz que contiene cualquiera de los valores de la matriz dada. Requiere: - Ese
value es un ArrayValue no vacío, sujeto a límites de disyunción. - No hay otros filtros
ARRAY_CONTAINS_ANY dentro de la misma disyunción. - No hay filtros
NOT_IN en la misma consulta.
|
NOT_IN | El valor del field no está en la matriz dada. Requiere: - Ese
value es un ArrayValue no vacío con como máximo 10 valores. - Ningún otro
OR , IN , ARRAY_CONTAINS_ANY , NOT_IN , NOT_EQUAL , IS_NOT_NULL o IS_NOT_NAN . - Ese
field ocupa el primer lugar en orderBy .
|
Filtro unario
Un filtro con un solo operando.
Representación JSON |
---|
{
"op": enum (Operator ),
// Union field operand_type can be only one of the following:
"field": {
object (FieldReference )
}
// End of list of possible types for union field operand_type .
} |
Campos |
---|
op | enum ( Operator ) El operador unario a aplicar. |
Campo de unión operand_type . El argumento del filtro. operand_type puede ser sólo uno de los siguientes: |
field | object ( FieldReference ) El campo al que aplicar el operador. |
Operador
Enumeraciones |
---|
OPERATOR_UNSPECIFIED | Sin especificar. Este valor no debe utilizarse. |
IS_NAN | El field dado es igual a NaN . |
IS_NULL | El field dado es igual a NULL . |
IS_NOT_NAN | El field proporcionado no es igual a NaN . Requiere: - Ningún otro
NOT_EQUAL , NOT_IN , IS_NOT_NULL o IS_NOT_NAN . - Ese
field ocupa el primer lugar en orderBy .
|
IS_NOT_NULL | El field dado no es igual a NULL . Requiere: - Un solo
NOT_EQUAL , NOT_IN , IS_NOT_NULL o IS_NOT_NAN . - Ese
field ocupa el primer lugar en orderBy .
|
Orden
Campos |
---|
field | object ( FieldReference ) El campo por el que realizar el pedido. |
direction | enum ( Direction ) La dirección para realizar el pedido. El valor predeterminado es ASCENDING . |
Dirección
Una especie de dirección.
Enumeraciones |
---|
DIRECTION_UNSPECIFIED | Sin especificar. |
ASCENDING | Ascendente. |
DESCENDING | Descendente. |
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2023-12-01 (UTC).
[null,null,["Última actualización: 2023-12-01 (UTC)."],[],[]]