Erforderliche Felder validieren
In diesem Schritt bauen wir auf unsere vorherigen Datvalidierungsarbeiten auf, indem wir uns darauf konzentrieren, sicherzustellen, dass in unseren MongoDB-Dokumenten immer die erforderlichen Felder vorhanden sind.
Das Verständnis von erforderlichen Feldern
Erforderliche Felder sind wesentliche Informationen, die in jedem Dokument vorhanden sein müssen. Im vorherigen Schritt haben wir ein Validierungsschema mit erforderlichen Feldern erstellt. Jetzt werden wir untersuchen, wie diese Anforderungen erzwungen und validiert werden.
Fahren wir in unserer MongoDB-Shell fort:
mongosh
Wechseln Sie zu unserer bestehenden Datenbank:
use dataValidationLab
Definieren einer strengen Validierung für erforderliche Felder
Wir werden unsere bestehende users-Sammlung ändern, um eine strenge Validierung für erforderliche Felder durchzuführen:
db.runCommand({
collMod: "users",
validator: {
$jsonSchema: {
bsonType: "object",
required: ["name", "age", "email", "registrationDate"],
properties: {
name: {
bsonType: "string",
description: "Name ist erforderlich und muss ein String sein"
},
age: {
bsonType: "int",
minimum: 18,
maximum: 120,
description:
"Alter ist erforderlich und muss ein Integer zwischen 18 und 120 sein"
},
email: {
bsonType: "string",
pattern: "^.+@.+$",
description:
"E-Mail ist erforderlich und muss eine gültige E-Mail-Adresse sein"
},
registrationDate: {
bsonType: "date",
description:
"Registrierungsdatum ist erforderlich und muss ein Datum sein"
}
}
}
},
validationLevel: "strict"
});
Versuchen, Dokumente mit fehlenden Feldern einzufügen
Lassen Sie uns versuchen, Dokumente mit fehlenden erforderlichen Feldern einzufügen:
// Dies wird fehlschlagen, da das Registrierungsdatum fehlt
db.users.insertOne({
name: "Bob Wilson",
age: NumberInt(35),
email: "[email protected]"
});
// Dies wird ebenfalls fehlschlagen, da erforderliche Felder fehlen
db.users.insertOne({
name: "Charlie Brown"
});
Korrektes Dokument einfügen
So können Sie ein Dokument einfügen, das alle Anforderungen erfüllt:
db.users.insertOne({
name: "Emma Thompson",
age: NumberInt(42),
email: "[email protected]",
registrationDate: new Date()
});
Überprüfen von Validierungsfehlern
Um zu verstehen, warum Einfügungen fehlschlagen, bietet MongoDB Validierungsfehlermeldungen:
try {
db.users.insertOne({
name: "Incomplete User"
});
} catch (error) {
print("Validation Error:", error.message);
}
Dies wird Ihnen helfen, genau zu verstehen, welche erforderlichen Felder fehlen.