sql >> Database >  >> NoSQL >> MongoDB

Hoe typecontrole afdwingen voor een documentwaarde in MongoDB?

Je kunt het zo doen. Dit is slechts een voorbeeld.

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"
})
  • Gebruik db.createCollection() om validatieregels op te geven bij het maken van een nieuwe collectie. met de validator keuze. Gebruik dan $jsonSchema in een document validator om het opgegeven schema af te dwingen op insert en update operaties.

  • validationLevel-optie, die bepaalt hoe strikt MongoDB validatieregels toepast op bestaande documenten tijdens een update, en

  • validationAction-optie, die bepaalt of MongoDB documenten moet fouten en afwijzen die de validatieregels schenden of waarschuwen voor de schendingen in het logboek, maar ongeldige documenten toestaan.

  • Gebruik collMod . om documentvalidatie aan een bestaande verzameling toe te voegen commando met de validator optie.

  • Wanneer u validatie aan een collectie toevoegt, ondergaan bestaande documenten geen validatiecontroles totdat ze zijn gewijzigd.

Lees a.u.b. deze links:-

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

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




  1. mangoest:vul in in mangoest die geen ObjectId heeft

  2. mongodb 4.0 transacties ondersteuning voor node.js

  3. Node.js Kue hoe mislukte taken opnieuw te starten

  4. Mongo _id voor subdocumentarray