MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como impor a verificação de tipo para um valor de documento no MongoDB?


Você pode fazer assim. Este apenas um exemplo.
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 regras de validação ao criar uma nova coleção, use db.createCollection() com o validator opção. Em seguida, use $jsonSchema em um documento validator para impor o esquema especificado em insert e update operações.

  • opção validationLevel, que determina com que rigor o MongoDB aplica as regras de validação a documentos existentes durante uma atualização, e

  • opção validationAction, que determina se o MongoDB deve errar e rejeitar documentos que violem as regras de validação ou avisar sobre as violações no log, mas permitir documentos inválidos.

  • Para adicionar validação de documento a uma coleção existente, use collMod comando com o validator opção.

  • Quando você adiciona validação a uma coleção, os documentos existentes não passam por verificações de validação até a modificação.

Por favor, leia através destes links:-

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

https://docs.mongodb.com/manual/ reference/operator/query/jsonSchema/#op._S_jsonSchema