Quelles sont les conventions de nommage pour MongoDB?

Existe-t-il un ensemble de conventions de nommage préférées pour les entites MongoDB telles que les bases de données, les collections, les noms de champs?

Je pensais dans ce sens:

  • bases de données: se composent du but (mot au singulier) et se terminent par " db " - toutes les minuscules: imagedb, resumedb, memberdb, etc.
  • Collections: pluriel en minuscules: images, CV,
  • champs du Document: lowerCamelCase, par exemple memberFirstName, fileName, etc
129
demandé sur Andrey 2011-05-06 23:23:16

6 réponses

  1. Garder em court: Optimiser le Stockage de Petits Objets, SERVEUR-863. Idiot mais c'est vrai.

  2. Je suppose que les mêmes règles qui s'appliquent aux bases de données de relations devraient s'appliquer ici. Et après tant de décennies, il n'y a toujours pas d'accord si les tables SGBDR doivent être nommées au singulier ou au pluriel...

  3. MongoDB parle JavaScript, utilisez donc les conventions de nommage JS de camelCase.

  4. MongoDB documentation officielle vous mentionne peut utiliser des traits de soulignement, l'identifiant intégré est également nommé _id (mais cela peut être pour indiquer que _id est destiné à être privé, interne, jamais affiché ou modifié.

93
répondu Tomasz Nurkiewicz 2018-03-02 23:02:34

Même si aucune convention n'est spécifiée à ce sujet, les références manuelles sont systématiquement nommées d'après la collection référencée dans la documentation Mongo, pour les relations one-to-one. Le nom suit toujours la structure <document>_id.

Par exemple, dans une collection dogs, un document aurait des références manuelles à des documents externes nommés comme ceci:

{
  name: 'fido',
  owner_id: '5358e4249611f4a65e3068ab',
  race_id: '5358ee549611f4a65e3068ac',
  colour: 'yellow'
  ...
}

Cela suit la convention Mongo de nommer _id l'identifiant pour chaque document.

18
répondu danza 2015-05-28 13:14:35

Base de données

  • camelCase
  • ajouter DB à la fin du nom
  • Faire singulier (les collections sont plurielles)

MongoDB indique un bel exemple:

Pour sélectionner une base de données à utiliser, dans le shell mongo, l'énoncé, comme dans l'exemple suivant:

utilisation myDB
utilisation myNewDB

contenu de: https://docs.mongodb.com/manual/core/databases-and-collections/#databases

Les COLLECTIONS de

  • Noms minuscules: évite les problèmes de sensibilité à la casse, les noms de collection MongoDB sont sensibles à la casse.

  • Pluriel: plus évident à l'étiquette d'une collection de quelque chose comme le pluriel, par exemple, "fichiers", plutôt que "fichier"

  • >Pas de séparateurs de mots: Évite les problèmes où différentes personnes (à tort) séparez les mots (username user_name, first_name
    firstname). Celui-ci est en débat Selon quelques personnes
    ici mais à condition que l'argument soit isolé des noms de collection Je ne pense pas que cela devrait l'être;) si vous vous trouvez à améliorer le
    lisibilité du nom de votre collection en ajoutant des traits de soulignement ou
    camelCasing votre nom de collection est probablement trop long ou devrait utiliser
    périodes le cas échéant qui est la norme pour la collecte
    catégorisation.

  • Notation par points pour les collections plus détaillées: donne une indication sur la façon dont les collections sont liées. Par exemple vous pouvez être raisonnablement sûr que vous pourriez supprimer " utilisateurs.pagevisits " si vous avez supprimé "utilisateurs", à condition que les personnes qui ont conçu le schéma ont fait un bon emploi.

le Contenu de: http://www.learnit.net.in/2016/03/schema-design-and-naming-conventions-in.html

Pour les collections je suis en suivant ces modèles suggérés jusqu'à ce que je trouve la documentation officielle MongoDB.

15
répondu BBi7 2017-10-09 15:36:25

Convention de nommage pour la collection

Pour nommer une collection quelques précautions à prendre:

  1. une collection avec une chaîne vide ("") n'est pas un nom de collection valide.
  2. un nom de collection ne doit pas contenir le caractère null car cela définit la fin du nom de collection.
  3. Le nom de la Collection ne doit pas commencer par le préfixe "système"."comme cela est réservé aux collections internes.
  4. , Il serait bon de ne pas contenir le caractère "$" dans le nom de la collection en tant que divers pilotes disponibles pour la base de données ne prend pas en charge "$" dans le nom de la collection.

    Les éléments à garder à l'esprit lors de la création d'un nom de base de données sont:

  5. une base de données avec une chaîne vide ( "" ) n'est pas un nom de base de données valide.
  6. Le nom de la base de données ne peut pas dépasser 64 octets.
  7. les noms de base de données sont sensibles à la casse, même sur les systèmes de fichiers non sensibles à la casse. Ainsi, il est bon de garder le nom en minuscules.
  8. un nom de base de données ne peut contenir aucun de ces caractères "/, \, ., ", *, , :, |, ?, $,". Il ne peut pas non plus contenir un seul espace ou caractère nul.

Pour plus d'informations. Veuillez vérifier le lien ci-dessous: http://www.learnit.net.in/2016/03/schema-design-and-naming-conventions-in.html

5
répondu Shrinivas Kalangutkar 2016-03-15 10:04:41

Je pense que c'est une préférence personnelle. Mes préférences proviennent de L'utilisation de NHibernate, dans.NET, avec SQL Server, donc elles diffèrent probablement de ce que les autres utilisent.

  • bases de données: l'application utilisée.. ex: Stackoverflow
  • Collections: singulier dans le nom, ce que ça va être une collection de, ex: Question
  • champs du Document, ex: MemberFirstName

Honnêtement, il n'a pas trop d'importance, tant que c'est cohérent pour le projet. Simplement se rendre au travail et ne transpire pas les détails: P

2
répondu Rex Morgan 2011-05-06 19:33:54

Jusqu'à ce que nous obtenions SERVER-863 garder les noms de champs aussi courts que possible est conseillé surtout lorsque vous avez beaucoup de dossiers.

Selon votre cas d'utilisation, les noms de champs peuvent avoir un impact énorme sur le stockage. Je ne peux pas comprendre pourquoi ce n'est pas une priorité plus élevée pour MongoDb, car cela aura un impact positif sur tous les utilisateurs. Si rien d'autre, nous pouvons commencer à être plus descriptifs avec nos noms de champs, sans réfléchir à deux fois sur les coûts de bande passante et de stockage.

S'il Vous Plaît faire vote.

2
répondu FlappySocks 2013-03-31 11:28:57