Existe-t-il une convention pour nommer la collection dans MongoDB?

J’aimerais savoir s’il existe une convention pour les collections de bases de données telles que:

PageVisit ou page_visit .

Y at-il des avantages / inconvénients pour ces notations?

Les conventions générales sont:

  • Noms en minuscules : cela évite les problèmes de sensibilité à la casse, car les noms de collection MongoDB sont sensibles à la casse .
  • Pluriel : plus évident pour étiqueter une collection de quelque chose comme pluriel, par exemple “fichiers” plutôt que “fichier”
  • Aucun séparateur de mots : évite les problèmes où des personnes différentes (à tort) séparent les mots (nom d’utilisateur < -> nom_utilisateur, prénom_ -> prénom). Celui-ci est à débattre selon quelques personnes ici, mais à condition que l’argument soit isolé des noms de collection que je ne pense pas qu’il devrait être;) Si vous améliorez la lisibilité du nom de votre collection en ajoutant des traits de soulignement Le nom de la collection est probablement trop long ou devrait utiliser des points appropriés, ce qui est la norme pour la catégorisation des collections.
  • Notation par points pour les collections plus détaillées : donne des indications sur la manière dont les collections sont liées. Par exemple, vous pouvez être raisonnablement sûr de pouvoir supprimer “users.pagevisits” si vous avez supprimé “users”, à condition que les personnes qui ont conçu le schéma aient fait du bon travail;)

Exemples:

 users pagevisits users.pagevisits 

Les conventions de nom de champ (devraient) suivent une logique similaire, bien que celles-ci soient assez courantes.

Evitez tout simplement d’utiliser des tirets dans les noms de vos collections.

Et c’est seulement parce que, si vous utilisez le cli des deux appels ci-dessous, le premier n’est pas valide JavaScript:

 db.foo-bar.find(); db['foo-bar'].find(); 

Ils sont tous deux fonctionnellement identiques, mais le second est légèrement plus gênant à taper et ne comporte pas de tabulation complète.

En dehors de cela, les avantages / inconvénients dépendent de votre utilisation des collections. Être cohérent est plus important que la convention que vous choisissez.

Dans http://docs.mongodb.org/manual/reference/limits/ , le manuel indique que les noms de la collection doivent commencer par un trait de soulignement («_») ou une lettre et ne peuvent pas:

  • contient le $.
  • être une chaîne vide (par exemple “”).
  • contient le caractère nul.
  • Commencez par le système. préfixe. (Réservé à un usage interne.)

Toutefois, si vous suivez la règle et créez une collection avec «_» comme lettre de début, telle que «_TWII», vous rencontrerez des problèmes lorsque vous souhaitez supprimer la collection. Voir le test ci-dessous et la façon de le réparer. La collection ‘_TWII’ a été créée sous ‘people’ db.

 > show collections _TWII employees system.indexes > db._TWII.drop() 2015-02-19T16:34:56.738-0800 TypeError: Cannot call method 'drop' of undefined > use admin switched to db admin > db.runCommand({renameCollection:"people._TWII",to:"people.TWII"}) { "ok" : 1 } > use people switched to db people > show collections TWII employees system.indexes > db.TWII.drop() true > show collections employees system.indexes > 

Un raccourci pour supprimer la collection _TWII sous la rubrique ‘people’ db:

 > db.createCollection('^TWII') { "ok" : 1 } > db.getCollection('^TWII').drop() true