sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur framtvingar man typkontroll för ett dokumentvärde i MongoDB?

Du kan göra så här. Detta är bara ett exempel.

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"
})
  • För att ange valideringsregler när du skapar en ny samling, använd db.createCollection() med validator alternativ. Använd sedan $jsonSchema i ett dokument validator för att genomdriva det angivna schemat på insert och update operationer.

  • validationLevel-alternativet, som bestämmer hur strikt MongoDB tillämpar valideringsregler på befintliga dokument under en uppdatering, och

  • validationAction-alternativ, som avgör om MongoDB ska göra fel och avvisa dokument som bryter mot valideringsreglerna eller varna för överträdelserna i loggen men tillåta ogiltiga dokument.

  • För att lägga till dokumentvalidering till en befintlig samling, använd collMod kommandot med validator alternativ.

  • När du lägger till validering i en samling genomgår inte befintliga dokument valideringskontroller förrän de ändras.

Vänligen läs igenom dessa länkar :-

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

https://docs.mongodb.com/manual/ referens/operatör/query/jsonSchema/#op._S_jsonSchema




  1. Mongodb-fråga på kapslade arrayelement

  2. Fjäderdata MongoDb:MappingMongoConverter remove _class

  3. Mongodb hitta skapade resultat efter datum idag

  4. Hur spelar ordningen på sammansatta index roll i MongoDB prestandamässigt?