MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come applicare il controllo del tipo per un valore di documento in MongoDB?

Puoi farlo così. Questo è solo un esempio.

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"
})
  • Per specificare le regole di convalida durante la creazione di una nuova raccolta, utilizzare db.createCollection() con il validator opzione. Quindi usa $jsonSchema in un documento validator per applicare lo schema specificato su insert e update operazioni.

  • validationLevel opzione, che determina in che modo MongoDB applica rigorosamente le regole di convalida ai documenti esistenti durante un aggiornamento e

  • validationAction, che determina se MongoDB deve commettere errori e rifiutare i documenti che violano le regole di convalida o avvisare delle violazioni nel registro ma consentire documenti non validi.

  • Per aggiungere la convalida del documento a una raccolta esistente, utilizza collMod comando con il validator opzione.

  • Quando aggiungi la convalida a una raccolta, i documenti esistenti non vengono sottoposti a controlli di convalida fino alla modifica.

Si prega di leggere questi link :-

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

https://docs.mongodb.com/manual/ riferimento/operatore/query/jsonSchema/#op._S_jsonSchema