MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie erzwinge ich eine Typprüfung für einen Dokumentwert in MongoDB?

Du kannst es so machen. Dies ist nur ein Beispiel.

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"
})
  • Verwenden Sie zum Angeben von Validierungsregeln beim Erstellen einer neuen Sammlung db.createCollection() mit dem validator Möglichkeit. Verwenden Sie dann $jsonSchema in einem Dokument validator um das angegebene Schema bei insert zu erzwingen und update Operationen.

  • ValidationLevel-Option, die festlegt, wie streng MongoDB während einer Aktualisierung Validierungsregeln auf vorhandene Dokumente anwendet, und

  • ValidationAction-Option, die festlegt, ob MongoDB Dokumente, die gegen die Validierungsregeln verstoßen, zurückweisen und ablehnen oder im Protokoll vor Verstößen warnen, aber ungültige Dokumente zulassen soll.

  • Verwenden Sie collMod, um einer vorhandenen Sammlung eine Dokumentvalidierung hinzuzufügen Befehl mit dem validator Option.

  • Wenn Sie einer Sammlung eine Validierung hinzufügen, werden vorhandene Dokumente bis zur Änderung keiner Validierungsprüfung unterzogen.

Bitte lesen Sie diese Links durch :-

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

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