Consulta de datos con Azure Cosmos DB for MongoDB

SE APLICA A: MongoDB

Azure Cosmos DB for MongoDB admite las consultas de MongoDB.

En este artículo se tratan las tareas siguientes:

  • Consulta de los datos almacenados en la base de datos de Azure Cosmos DB mediante el shell de MongoDB

Puede empezar con los ejemplos de este artículo.

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
}

Consulta 1 de ejemplo

Dado el documento de familia de ejemplo, la consulta siguiente devuelve los documentos en los que idel campo coincideWakefieldFamily.

Consulta:

db.families.find({ id: "WakefieldFamily"})

Resultados:

{
    "_id": "ObjectId(\"58f65e1198f3a12c7090e68c\")",
    "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
}

Consulta 2 de ejemplo

La consulta siguiente devuelve todos los elementos secundarios de la familia.

Consulta:

db.families.find( { id: "WakefieldFamily" }, { children: true } )

Resultados:

{
    "_id": "ObjectId("58f65e1198f3a12c7090e68c")",
    "children": [
      {
        "familyName": "Merriam",
        "givenName": "Jesse",
        "gender": "female",
        "grade": 1,
        "pets": [
          { "givenName": "Goofy" },
          { "givenName": "Shadow" }
        ]
      },
      {
        "familyName": "Miller",
        "givenName": "Lisa",
        "gender": "female",
        "grade": 8
      }
    ]
}

Consulta 3 de ejemplo

La consulta siguiente devuelve todas las familias que están registradas.

Consulta:

db.families.find( { "isRegistered" : true })

Resultados:

No se devuelve ningún documento.

Consulta 4 de ejemplo

La consulta siguiente devuelve todas las familias que no están registradas.

Consulta:

db.families.find( { "isRegistered" : false })

Resultados:

{
    "_id": ObjectId("58f65e1198f3a12c7090e68c"),
    "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
}

Consulta 5 de ejemplo

La consulta siguiente devuelve todas las familias que no están registradas y el estado es NY.

Consulta:

db.families.find( { "isRegistered" : false, "address.state" : "NY" })

Resultados:

{
    "_id": ObjectId("58f65e1198f3a12c7090e68c"),
    "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
}

Consulta 6 de ejemplo

La consulta siguiente devuelve todas las familias en las que los grados de los elementos secundarios son 8.

Consulta:

db.families.find( { children : { $elemMatch: { grade : 8 }} } )

Resultados:

{
    "_id": ObjectId("58f65e1198f3a12c7090e68c"),
    "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
}

Consulta 7 de ejemplo

La consulta siguiente devuelve todas las familias en las que el valor de tamaño de la matriz secundaria es 3.

Consulta:

db.Family.find( {children: { $size:3} } )

Resultados:

No se ha devuelto ningún resultado ya que no hay familias con más de dos hijos. Solo si el valor del parámetro es 2, esta consulta se realiza correctamente y devuelve el documento completo.

Pasos siguientes

En este tutorial, ha realizado las tareas siguientes:

  • Ha aprendido a realizar consultas mediante Azure Cosmos DB for MongoDB

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