sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo hacer cumplir la verificación de tipo para un valor de documento en MongoDB?

Puedes hacerlo así. Esto es solo un ejemplo.

db.createCollection( "people" , {
   validator: {
     $jsonSchema: {
        bsonType: "object",
        additionalProperties: false, //wont't allow additional properties to be added, Use if you want to restrict people from adding extra fields.
 required: ["name","age"], //document must contain these fields, else operation will fail/log warning depending on `validationLevel` and `validationAction`
        properties: {
           _id : {
              bsonType: "objectId" },
           name: {
              bsonType: "string", //type of name
              description: "required and must be a string" },
           age: {
              bsonType: "int", //type of age
              minimum: 0,
              maximum: 100,
              description: "required and must be in the range 0-100" }
        }
     }},
     validationLevel: "moderate",
     validationAction: "error"
})
  • Para especificar reglas de validación al crear una nueva colección, use db.createCollection() con el validator opción. Luego usa $jsonSchema en un documento validator para hacer cumplir el esquema especificado en insert y update operaciones.

  • opción de nivel de validación, que determina qué tan estrictamente MongoDB aplica las reglas de validación a los documentos existentes durante una actualización, y

  • opción de acción de validación, que determina si MongoDB debe generar un error y rechazar los documentos que violan las reglas de validación o advertir sobre las violaciones en el registro pero permitir documentos no válidos.

  • Para agregar validación de documentos a una colección existente, use collMod comando con el validator opción.

  • Cuando agrega validación a una colección, los documentos existentes no se someten a comprobaciones de validación hasta que se modifican.

Lea estos enlaces:-

https://docs.mongodb.com/manual/core/schema-validation/

https://docs.mongodb.com/manual/ referencia/operador/consulta/jsonSchema/#op._S_jsonSchema