Compartir vía


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

Prerequisites

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

Para más información sobre las consultas, consulte Consultas en Azure Cosmos DB para NoSQL.

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:

Query:

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

Results:

{
  "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.

Query:

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

Results:

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

Paso siguiente