Tutorial: Consulta de datos en Azure Cosmos DB for NoSQL

SE APLICA A: NoSQL

Azure Cosmos DB for NoSQL admite la consulta de documentos mediante la sintaxis de consulta integrada. En este artículo se proporciona un documento de ejemplo y dos consultas de ejemplo y los resultados.

En este artículo se tratan las tareas siguientes:

  • Consulta de datos NoSQL con la sintaxis de consulta integrada

Requisitos previos

En este tutorial se da por supuesto que tiene una cuenta, una base de datos y un contenedor de Azure Cosmos DB.

¿No tiene ninguno de esos recursos? Complete este inicio rápido: Creación de una cuenta, una base de datos, un contenedor y elementos de Azure Cosmos DB desde Azure Portal.

Puede ejecutar las consultas mediante el Explorador de Azure Cosmos DB en Azure Portal. También puede ejecutar consultas mediante la API de REST o distintos SDK.

Para obtener más información sobre las consultas, consulte configuración iniciada con consultas.

Documento de ejemplo

En las consultas de este artículo se usa el documento de ejemplo siguiente.

{
  "id": "WakefieldFamily",
  "parents": [
    { "familyName": "Wakefield", "givenName": "Robin" },
    { "familyName": "Miller", "givenName": "Ben" }
  ],
  "children": [
    {
      "familyName": "Merriam", 
      "givenName": "Jesse", 
      "gender": "female", "grade": 1,
      "pets": [
          { "givenName": "Goofy" },
          { "givenName": "Shadow" }
      ]
    },
    { 
      "familyName": "Miller", 
        "givenName": "Lisa", 
        "gender": "female", 
        "grade": 8 
    }
  ],
  "address": { "state": "NY", "county": "Manhattan", "city": "NY" },
  "creationDate": 1431620462,
  "isRegistered": false
}

Seleccionar todos los campos y aplicar un filtro

Dado el documento de familia de ejemplo, la consulta siguiente devuelve los documentos donde el campo Id. coincide con WakefieldFamily. Puesto que es una instrucción SELECT *, la salida de la consulta es el documento JSON completo:

Consulta:

SELECT * 
FROM Families f 
WHERE f.id = "WakefieldFamily"

Resultados:

{
  "id": "WakefieldFamily",
  "parents": [
    { "familyName": "Wakefield", "givenName": "Robin" },
    { "familyName": "Miller", "givenName": "Ben" }
  ],
  "children": [
    {
      "familyName": "Merriam", 
      "givenName": "Jesse", 
      "gender": "female", "grade": 1,
      "pets": [
          { "givenName": "Goofy" },
          { "givenName": "Shadow" }
      ]
    },
    { 
      "familyName": "Miller", 
        "givenName": "Lisa", 
        "gender": "female", 
        "grade": 8 
    }
  ],
  "address": { "state": "NY", "county": "Manhattan", "city": "NY" },
  "creationDate": 1431620462,
  "isRegistered": false
}

Seleccionar un producto cruzado de un campo de colección secundaria

La consulta siguiente devuelve todos los nombres de los hijos de la familia cuyos identificadores coincidan con WakefieldFamily.

Consulta:

SELECT c.givenName 
FROM Families f 
JOIN c IN f.children 
WHERE f.id = 'WakefieldFamily'

Resultados:

[
  {
    "givenName": "Jesse"
  },
  {
    "givenName": "Lisa"
  }
]

Pasos siguientes

En este tutorial, ha realizado las tareas siguientes:

  • Ha aprendido a consultar mediante la sintaxis de consulta integrada

Ahora puede continuar con el tutorial siguiente para obtener información sobre cómo distribuir sus datos globalmente.