sql >> Databáze >  >> NoSQL >> MongoDB

Jak vynutit kontrolu typu pro hodnotu dokumentu v MongoDB?

Můžete to udělat takto. Toto je jen příklad.

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"
})
  • Chcete-li určit ověřovací pravidla při vytváření nové kolekce, použijte db.createCollection() pomocí validator volba. Poté použijte $jsonSchema v validator dokumentu k vynucení zadaného schématu na insert a update operace.

  • možnost validationLevel, která určuje, jak přísně MongoDB během aktualizace aplikuje pravidla ověření na existující dokumenty a

  • validationAction možnost, která určuje, zda má MongoDB chybovat a odmítat dokumenty, které porušují pravidla ověřování, nebo varovat před porušením v protokolu, ale povolit neplatné dokumenty.

  • Chcete-li přidat ověření dokumentu do existující kolekce, použijte collMod pomocí validator možnost.

  • Když do kolekce přidáte ověření, stávající dokumenty neprojdou ověřením platnosti, dokud nebudou upraveny.

Přečtěte si prosím tyto odkazy :-

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

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




  1. Načítání z více samostatných sbírek pomocí Express a MongoDB

  2. Index se nevytváří, pro $textový dotaz - mongoose je vyžadován textový index

  3. Aktualizace hashovaného hesla pomocí mongoose express

  4. Jak restartovat existující kontejner MongoDB Docker Container s novými příznaky pro démona