MongoDB: Comment définir un schéma?
Donc, j'ai une application qui utilise MongoDB comme une base de données. L'application permet l'utilisation de quelques collections.
Quand et comment dois-je aller sur la définition de la "schéma" de la base de données qui comprend la mise en place de toutes les collections ainsi que les index nécessaires?
Autant que je sache, vous ne parvenez pas à définir vide collections dans MongoDB (corrigez-moi si je me trompe, si je peux faire cela, il va fondamentalement, la réponse à cette question). Dois-je insérer une valeur factice pour chaque collecte et à l'utilisation que pour l'installation de tous mes indices?
Quelle est la meilleure pratique pour cela?
source d'informationauteur Ayrx
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas à créer des collections dans MongoDB.
Vous venez de commencer à les utiliser immédiatement s'ils “existent” ou pas.
Maintenant à la définition du “schéma”. Comme je l'ai dit, vous venez de commencer à utiliser une collection, donc, si vous devez vous assurer d'un index, juste aller de l'avant et le faire. Pas de création de la collection. Toute la collection sera effectivement créé lors de la première modification (création d'un index chiffres).
Créer vide collection
Tout d'abord, c'est comment vous pouvez créer des vides collection MongoDB à l'aide de construire dans la borne interactive, de sorte que vous pouvez le faire,
seulement vous ne devez pas parce que quelqu'un l'a dit avant qu'ils se créé en temps réel une fois que vous commencez à interagir avec la base de données.
MongoDB est un schéma moins la fin de l'histoire, mais ...
Vous pouvez créer votre propre classe qui interagit avec la Base de données mongo. Dans cette catégorie, vous pouvez définir des règles qui ont pour remplies avant de pouvoir insérer des données de mongo collection d'autres sages jeter exception personnalisée.
Ou si vous utilisez node.js côté serveur, vous pouvez en installer mangouste nœud package qui permet d'interagir avec la base de données en programmation orientée objet, style (Pourquoi réinventer la roue, non?).
docs: mangouste mnp d'installation et d'utilisation de base
https://www.npmjs.com/package/mongoose
mangouste documentation complète http://mongoosejs.com
Mangouste exemple (définition de schéma et de l'insertion des données)
Bla bla bla...
Être en mesure de définir le schéma avec restriction dans notre code desn change pas le fait que MongoDB est lui-même schéma qui, dans certains scénarios est en réalité un avantage. De cette façon, si jamais vous décidez de faire des changements de schéma, mais que vous n'avez pas à vous soucier de la compatibilité descendante il suffit de modifier le schéma dans votre script, et vous avez terminé. C'est l'idée de base derrière la mongodb pour être en mesure de stocker les différents ensembles de données dans chaque document dans la même collection. Toutefois certaines restrictions dans le code de la base de la logique sont toujours souhaitable.
Vous avez déjà été enseigné que MongoDB est schemaless. Cependant, dans la pratique, nous avons une sorte de "schéma", et qui est l'objet de l'espace de l'objet, dont les relations d'une base de données MongoDB représente. Avec le ceveat que Ruby est ma langue, et que je ne fais pas de revendications sur l'exhaustivité de cette réponse, je vous recommande d'essayer les deux morceaux de logiciel:
S'attendre à une courbe d'apprentissage. J'espère que d'autres vont vous aider à trouver des solutions dans d'autres grandes langues en dehors de mes compétences, tels que Python.
À partir de la version 3.2, mongodb propose maintenant la validation du schéma au niveau de la collection:
https://docs.mongodb.com/manual/core/schema-validation/