Consulta de documentos
Para consultar documentos JSON arbitrarios en una colección, realice una publicación en el recurso "colls" de Cosmos DB. La sintaxis sql de Cosmos DB proporciona operadores de consulta jerárquicos, relacionales y espaciales para consultar y proyectar documentos. Para obtener más información sobre cómo consultar recursos en Cosmos DB, consulte Consulta de recursos.
Solicitud
Método | URI de solicitud | Descripción |
---|---|---|
post | https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs | tenga en cuenta que {databaseaccount} es el nombre de la cuenta de Cosmos DB creada en la suscripción. el valor {db-id} es el nombre o identificador generado por el usuario de la base de datos, no el identificador generado por el sistema (rid). el valor {coll-id} es el nombre de la colección. |
encabezados
Consulte Encabezados de solicitud REST comunes de Azure Cosmos DB para los encabezados que usan todas las solicitudes de Cosmos DB.
Encabezado | Obligatorio | Tipo | Descripción |
---|---|---|---|
x-ms-documentdb-isquery | Obligatorio | Boolean | Debe establecerse en True, lo que indica que POST es una consulta. |
Content-Type | Obligatorio | String | Cadena que se debe establecer en application/query+json. |
x-ms-max-item-count | Opcionales | Number | Entero que indica el número máximo de elementos que se van a devolver por página. Las consultas no devolverán más del número especificado de elementos por página, pero podrían ser menos en función del nivel de rendimiento de la colección y sus tamaños. Se puede especificar un recuento de elementos x-ms-max-item-count de -1 para permitir que el servicio determine el recuento óptimo de elementos. Es el valor de configuración recomendado para x-ms-max-item-count. |
x-ms-continuation | Opcionales | String | Un token de cadena devuelto para las consultas y las operaciones de fuente de lectura si hay más resultados que se van a leer. Los clientes pueden recuperar la siguiente página de resultados reenviando la solicitud con el encabezado de solicitud x-ms-continuation establecido en este valor. |
x-ms-documentdb-query-enablecrosspartition | Opcionales | Boolean | Si la colección tiene particiones, debe establecerse en True para permitir la ejecución en varias particiones. Las consultas que filtran por una sola clave de partición o en colecciones con particiones únicas no necesitan establecer el encabezado. |
x-ms-consistency-level | Opcionales | String | Es el nivel que reemplazar al nivel de coherencia anterior. Los valores válidos son: Strong, Bounded, Session o Eventual (en orden de mayor a menor). La invalidación debe ser la misma o más débil que el nivel de coherencia configurado de la cuenta. |
x-ms-session-token | Opcionales | String | Token de cadena usado con coherencia de nivel de sesión. Los clientes deben hacer eco del último valor de lectura de este encabezado durante las solicitudes de lectura para la coherencia de la sesión. |
Importante
Para el Content-Type
encabezado NO se incluye el conjunto de caracteres (es decir, "application/query+json; charset-utf-8"). El encabezado debe ser exactamente como se muestra anteriormente.
Body
Propiedad | Obligatorio | Tipo | Descripción |
---|---|---|---|
consulta | Obligatorio | String | Contiene el texto de la consulta SQL. Para la gramática, consulte Gramática sql. |
parameters | Obligatorio | Array | Matriz de valores de parámetro para la consulta. |
{
"query": "SELECT * FROM Families f WHERE f.id = @id AND f.Address.City = @city",
"parameters": [
{
"name": "@id",
"value": "AndersenFamily"
},
{
"name": "@city",
"value": "Seattle"
}
]
}
Response
Devuelve una matriz de documentos que coinciden con la consulta solicitada.
encabezados
Consulte Encabezados de respuesta REST comunes de Azure Cosmos DB para ver los encabezados devueltos por todas las respuestas de Cosmos DB. Los encabezados de respuesta importantes son:
Propiedad | Tipo | Descripción |
---|---|---|
x-ms-continuation | String | Devuelve un token para capturar más resultados de la operación. El cliente puede volver a enviar la solicitud con el encabezado de solicitud x-ms-continuation que contiene este valor para reanudar la ejecución. |
x-ms-request-charge | Number | Número de unidades de solicitud consumidas por la operación. |
Códigos de estado
La tabla siguiente muestra los códigos de estado comunes que devuelve esta operación. Para obtener una lista completa de los códigos de estado, consulte Códigos de estado HTTP.
Código de estado HTTP | Descripción |
---|---|
200 OK | La operación se realizó correctamente. |
400 - Solicitud incorrecta | La solicitud especificada se especificó con una sintaxis SQL incorrecta o faltaban encabezados necesarios. |
Body
Propiedad | Descripción |
---|---|
_Librar | Es el identificador del recurso generado por el sistema para la colección donde residen los documentos. |
_Contar | La cantidad de documentos que devuelve la operación de lista. |
Documentos | La matriz de documentos devuelta por la operación. |
Propiedades del documento
Propiedad | Descripción |
---|---|
id | Este es el nombre único que identifica el documento, es decir, ningún documento puede compartir el mismo identificador. El identificador no debe superar los 255 caracteres. |
<custom> | Cualquier JSON definida por el usuario. |
_Librar | Se trata de una propiedad generada por el sistema. El identificador de recurso (_rid) es un identificador único que también es jerárquico por la pila de recursos en el modelo de recursos. Se usa de forma interna para la ubicación y la navegación del recurso de documento. |
_Ts | Se trata de una propiedad generada por el sistema. Especifica la última marca de tiempo actualizada del recurso. El valor es una marca de tiempo. |
_propio | Se trata de una propiedad generada por el sistema. Es el URI direccionable único para el recurso. |
_Etag | Se trata de una propiedad generada por el sistema que especifica la etag de recursos necesaria para el control de simultaneidad optimista. |
_Accesorios | Se trata de una propiedad generada por el sistema que especifica la ruta de acceso direccionable del recurso de datos adjuntos. |
{
"_rid": "1KtjAImkcgw=",
"Documents": [
{
"id": "AndersenFamily",
"LastName": "Andersen",
"Parents": [
{
"FamilyName": null,
"FirstName": "Thomas"
},
{
"FamilyName": null,
"FirstName": "Mary Kay"
}
],
"Children": [
{
"FamilyName": null,
"FirstName": "Henriette Thaulow",
"Gender": "female",
"Grade": 5,
"Pets": [
{
"GivenName": "Fluffy"
}
]
}
],
"Address": {
"State": "WA",
"County": "King",
"City": "Seattle"
},
"IsRegistered": true,
"_rid": "1KtjAImkcgwBAAAAAAAAAA==",
"_self": "dbs/1KtjAA==/colls/1KtjAImkcgw=/docs/1KtjAImkcgwBAAAAAAAAAA==/",
"_etag": "\"00003200-0000-0000-0000-56f9e84d0000\"",
"_ts": 1459218509,
"_attachments": "attachments/"
}
],
"_count": 1
}
Ejemplo
POST https://querydemo.documents.azure.com/dbs/1KtjAA==/colls/1KtjAImkcgw=/docs HTTP/1.1
x-ms-continuation:
x-ms-documentdb-isquery: True
x-ms-documentdb-query-enablecrosspartition: True
x-ms-date: Tue, 29 Mar 2016 02:28:32 GMT
authorization: type%3dmaster%26ver%3d1.0%26sig%3drOlOhFh9plfC0ggZfmHtS3XepVitiIRsd6i1d9PnuW8%3d
Cache-Control: no-cache
User-Agent: Microsoft.Azure.Documents.Client/1.6.0.0
x-ms-version: 2015-12-16
Accept: application/json
Content-Type: application/query+json
Host: querydemo.documents.azure.com
Cookie: x-ms-session-token#0=604; x-ms-session-token=604
Content-Length: 170
Expect: 100-continue
{
"query": "SELECT * FROM Families f WHERE f.id = @id AND f.Address.City = @city",
"parameters": [
{
"name": "@id",
"value": "AndersenFamily"
},
{
"name": "@city",
"value": "Seattle"
}
]
}
HTTP/1.1 201 Created
Cache-Control: no-store, no-cache
Pragma: no-cache
Transfer-Encoding: chunked
Content-Type: application/json
Server: Microsoft-HTTPAPI/2.0
Strict-Transport-Security: max-age=31536000
x-ms-last-state-change-utc: Fri, 25 Mar 2016 22:39:02.501 GMT
etag: "00003200-0000-0000-0000-56f9e84d0000"
x-ms-resource-quota: documentSize=10240;documentsSize=10485760;collectionSize=10485760;
x-ms-resource-usage: documentSize=0;documentsSize=1;collectionSize=1;
x-ms-schemaversion: 1.1
x-ms-alt-content-path: dbs/testdb/colls/testcoll
x-ms-quorum-acked-lsn: 602
x-ms-current-write-quorum: 3
x-ms-current-replica-set-size: 4
x-ms-request-charge: 12.38
x-ms-serviceversion: version=1.6.52.5
x-ms-activity-id: 856acd38-320d-47df-ab6f-9761bb987668
x-ms-session-token: 0:603
Set-Cookie: x-ms-session-token#0=603; Domain=querydemo.documents.azure.com; Path=/dbs/1KtjAA==/colls/1KtjAImkcgw=
Set-Cookie: x-ms-session-token=603; Domain=querydemo.documents.azure.com; Path=/dbs/1KtjAA==/colls/1KtjAImkcgw=
x-ms-gatewayversion: version=1.6.52.5
Date: Tue, 29 Mar 2016 02:28:30 GMT
{
"id": "AndersenFamily",
"LastName": "Andersen",
"Parents": [
{
"FamilyName": null,
"FirstName": "Thomas"
},
{
"FamilyName": null,
"FirstName": "Mary Kay"
}
],
"Children": [
{
"FamilyName": null,
"FirstName": "Henriette Thaulow",
"Gender": "female",
"Grade": 5,
"Pets": [
{
"GivenName": "Fluffy"
}
]
}
],
"Address": {
"State": "WA",
"County": "King",
"City": "Seattle"
},
"IsRegistered": true,
"_rid": "1KtjAImkcgwBAAAAAAAAAA==",
"_self": "dbs/1KtjAA==/colls/1KtjAImkcgw=/docs/1KtjAImkcgwBAAAAAAAAAA==/",
"_etag": "\"00003200-0000-0000-0000-56f9e84d0000\"",
"_ts": 1459218509,
"_attachments": "attachments/"
}