Maison >base de données >MongoDB >Comment utiliser la validation du schéma de MongoDB pour appliquer l'intégrité des données?
Cet article explique la validation du schéma de MongoDB à l'aide du validateur $ jsonschema pour appliquer l'intégrité des données. Il détaille comment définir des schémas JSON spécifiant les types de données, les contraintes (par exemple, min / max) et les champs requis. Meilleures pratiques pour le schéma de
La validation du schéma de MongoDB vous permet de définir des règles pour la structure et le contenu de vos documents, assurant l'intégrité et la cohérence des données. Ceci est réalisé via le validateur $jsonSchema
dans les commandes createCollection
ou collMod
. Le validateur $jsonSchema
utilise un document de schéma JSON pour spécifier les champs, types de données et contraintes requis pour vos documents.
Par exemple, disons que vous stockez des informations sur les utilisateurs. Vous souhaitez vous assurer que chaque document utilisateur a un firstName
(String), un lastName
(String) et un age
(entier), et que l'âge se situe entre 0 et 120. Vous définissez un schéma JSON comme ceci:
<code class="json">{ "bsonType": "object", "properties": { "firstName": { "bsonType": "string", "description": "must be a string and is required" }, "lastName": { "bsonType": "string", "description": "must be a string and is required" }, "age": { "bsonType": "int", "minimum": 0, "maximum": 120, "description": "must be an integer between 0 and 120" } }, "required": [ "firstName", "lastName", "age" ] }</code>
Ce schéma spécifie que le document doit être un objet et définit les champs requis et leurs types de données. Le tableau required
garantit que firstName
, lastName
et age
sont présents dans chaque document. Les propriétés minimum
et maximum
limitent le champ age
. Vous appliquez ensuite ce schéma lors de la création ou de la modification d'une collection à l'aide de la commande createCollection
ou collMod
avec l'option validator
. Tout document qui viole ces règles sera rejeté par MongoDB. Cela empêche les données non valides d'entrer dans votre base de données, en maintenant l'intégrité des données.
La conception de schémas MongoDB efficaces avec validation nécessite un examen attentif de votre modèle de données et des cas d'utilisation potentiels. Voici quelques meilleures pratiques:
required
dans votre schéma JSON.minimum
, maximum
, minLength
, maxLength
, pattern
(pour les expressions régulières) et enum
pour appliquer les restrictions de données.Lorsqu'un document échoue à la validation du schéma, MongoDB rejetera l'opération d'insertion ou de mise à jour. Votre application doit gérer ces erreurs gracieusement. La méthode spécifique dépend de votre pilote et de votre langage de programmation. Généralement, vous recevrez un message d'erreur indiquant l'échec de validation et la raison.
try...catch
Block (ou équivalent) pour attraper les erreurs de validation. Non, la validation du schéma intégré de MongoDB ne prend pas directement en charge les fonctions de validation personnalisées. Le validateur $jsonSchema
s'appuie sur des mots clés et des types de données de schéma JSON prédéfinis. Cependant, vous pouvez obtenir des fonctionnalités similaires par d'autres moyens:
$jsonSchema
, vous pouvez effectuer des chèques et des audits post-traitement pour identifier les incohérences. Cela peut impliquer l'interrogation de la base de données et la vérification des données pour la conformité aux règles personnalisées. Vous pouvez ensuite signaler ces incohérences pour examen ou correction.N'oubliez pas que la validation au niveau de l'application est cruciale pour une intégrité robuste des données. Bien que la validation du schéma de MongoDB offre une première ligne de défense, elle ne devrait pas être entièrement invoquée pour des besoins de validation complexes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!