Validadores de esquema en Cosmos db

SANCHEZ GONZALEZ, JAVIER 0 Puntos de reputación
2024-11-28T07:25:14.11+00:00

Hola,

¿Cómo puedo implementar de forma nativa los validadores de esquema tal y como se hace en MongoDB en CosmosDB?

Gracias

Azure
Azure
Plataforma e infraestructura de informática en la nube para crear, implementar y administrar aplicaciones y servicios a través de una red mundial de centros de datos administrados por Microsoft.
565 preguntas
0 comentarios No hay comentarios
{count} votos

4 respuestas

Ordenar por: Muy útil
  1. Gao Chen 7,010 Puntos de reputación Proveedor de Microsoft
    2024-11-28T18:53:16.3066667+00:00

    Hola SANCHEZ GONZALEZ, JAVIER,

    ¡Bienvenido(a) a Microsoft Q&A!

    Por favor ten en cuenta que nosotros no soportamos código ni scripts, sin embargo, para esto puedes utilizar la funcionalidad de validación de esquema que CosmosDB ofrece a través de Azure Cosmos DB SQL API. Aquí te dejo los pasos básicos para lograrlo:

    Definir el esquema JSON: Al igual que en MongoDB, puedes definir un esquema JSON que describa la estructura de tus documentos. Este esquema se utiliza para validar los documentos que se insertan o actualizan en tu base de datos.

    Crear una colección con validación de esquema: Al crear una colección en CosmosDB, puedes especificar un esquema JSON en el parámetro validator. Aquí tienes un ejemplo de cómo hacerlo:

    {
      "id": "myCollection",
      "indexingPolicy": {
        "automatic": true,
        "indexingMode": "consistent"
      },
      "schema": {
        "validator": {
          "$jsonSchema": {
            "bsonType": "object",
            "required": ["name", "age", "specialty", "diagnosis"],
            "properties": {
              "name": {
                "bsonType": "string",
                "description": "must be a string and is required"
              },
              "age": {
                "bsonType": "int",
                "minimum": 0,
                "maximum": 120,
                "description": "must be an integer between 0 and 120 and is required"
              },
              "specialty": {
                "bsonType": "string",
                "enum": ["general", "pediatrics", "neurology"],
                "description": "can only be one of the enum values and is required"
              },
              "diagnosis": {
                "bsonType": "string",
                "description": "must be a string and is required"
              }
            }
          }
        }
      }
    }
    

    Insertar documentos: Al insertar documentos en la colección, CosmosDB validará automáticamente los documentos contra el esquema definido. Si un documento no cumple con el esquema, se rechazará la operación de inserción o actualización.

    Manejo de errores: Si un documento no pasa la validación, CosmosDB devolverá un error indicando qué parte del documento no cumple con el esquema. Esto te permite manejar los errores de validación en tu aplicación de manera adecuada.

    Espero que información brindada fuera útil. Si necesitas más asistencia, estoy a tu disposición.

    Atentamente,

    Gao


    Si esta respuesta resolvió tu consulta, por favor haz clic en 'Aceptar respuesta'. Esto nos ayuda a mejorar continuamente la calidad y relevancia de nuestras soluciones.

    0 comentarios No hay comentarios

  2. SANCHEZ GONZALEZ, JAVIER 0 Puntos de reputación
    2024-11-29T07:40:42.0466667+00:00

    Hola Gao,

    En primer lugar muchas gracias por tu respuesta!

    Ese enfoque lo he intentado pero algo debo estar haciendo mal, ya que no valida las inserciones.

    Te muestro lo que hago:

    Imagen del usuario

    En la colección no veo que exista validador:

    Imagen del usuario

    y al insertar un documento con age como string, no realiza la valicación:

    Imagen del usuario

    Y otro dato que puedo darte, si desde el NoSQLBooster trato de editar directamente los validares, al ejecutar el script dice que collMod no está soportado
    Imagen del usuario

    A ver si con esto puedes orientarme dónde está el problema.

    Nuevamente, muchas gracias por tu ayuda.

    Saludos!

    0 comentarios No hay comentarios

  3. Gao Chen 7,010 Puntos de reputación Proveedor de Microsoft
    2024-11-29T21:18:21.81+00:00

    Hola de nuevo SANCHEZ GONZALEZ, JAVIER,

    Ya que nosotros no soportamos código ni scripts, aquí te dejo la documentación de MongoDB en Azure Cosmos DB que puedes tomar como referencia y que te puede ayudar: https://learn.microsoft.com/es-es/azure/cosmos-db/mongodb/

    Si la informacion no es util para ti, mi recomendación seria ponerse en contacto con el soporte técnico de Azure para obtener ayuda en identificar la cuenta de Microsoft. Los puedes contactar en el siguiente link: Ayuda y soporte técnico - Microsoft Azure

    Atentamente,

    Gao

    0 comentarios No hay comentarios

  4. SANCHEZ GONZALEZ, JAVIER 0 Puntos de reputación
    2024-12-02T09:21:23.87+00:00

    Muchas gracias por tu ayuda!

    Saludos


Su respuesta

Las respuestas se pueden marcar como respuestas aceptadas por el autor de la pregunta, lo que ayuda a los usuarios a conocer la respuesta que resolvió el problema del autor.