name collection mongodb naming-conventions

mongodb collection name



¿Qué son las convenciones de nombres para MongoDB? (6)

¿Existe un conjunto de convenciones de nombres preferidos para las entidades de MongoDB, como bases de datos, colecciones, nombres de campos?

Estaba pensando en esta línea:

  • Bases de datos: consisten en el propósito (palabra en singular) y terminan en "db" - todo en minúsculas: imagedb, resumedb, memberdb, etc.
  • Colecciones: plural en minúsculas: imágenes, currículos,
  • Campos del documento: lowerCamelCase, por ejemplo, memberFirstName, fileName, etc.

  1. Keep''em short: optimizando el almacenamiento de objetos pequeños , SERVER-863 . Tonto pero cierto

  2. Creo que las mismas reglas que se aplican a las bases de datos de relación deberían aplicarse aquí. Y después de tantas décadas todavía no hay acuerdo sobre si las tablas RDBMS deberían llamarse singulares o plurales ...

  3. MongoDB habla JavaScript, así que utiliza las convenciones de nombres de JS de camelCase.

  4. La documentación oficial de MongoDB menciona que puede usar guiones bajos, también el identificador incorporado se llama _id (pero esto puede ser para indicar que _id está destinado a ser privado, interno, nunca mostrado o editado.


Convención de nombres para colección

Para nombrar una colección, hay que tomar algunas precauciones:

  1. Una colección con cadena vacía ("") no es un nombre de colección válido.
  2. Un nombre de colección no debe contener el carácter nulo porque define el nombre del final de la colección.
  3. El nombre de la colección no debe comenzar con el prefijo "sistema", ya que está reservado para colecciones internas.
  4. Sería bueno no contener el carácter "$" en el nombre de la colección, ya que varios controladores disponibles para la base de datos no admiten "$" en el nombre de la colección.

    Las cosas a tener en cuenta al crear un nombre de base de datos son:

  5. Una base de datos con cadena vacía ("") no es un nombre de base de datos válido.
  6. El nombre de la base de datos no puede ser más de 64 bytes.
  7. El nombre de la base de datos distingue entre mayúsculas y minúsculas, incluso en sistemas de archivos no sensibles a mayúsculas y minúsculas. Por lo tanto, es bueno mantener el nombre en minúscula.
  8. Un nombre de base de datos no puede contener ninguno de estos caracteres "/, /,.,", *, <,>,:, |,?, $, ". Tampoco puede contener un solo espacio o carácter nulo.

Para más información. Por favor, consulte el siguiente enlace: http://www.learnit.net.in/2016/03/schema-design-and-naming-conventions-in.html


Creo que es toda preferencia personal. Mis preferencias provienen del uso de NHibernate, en .NET, con SQL Server, por lo que probablemente difieran de lo que otros usan.

  • Bases de datos: la aplicación que se está utilizando. Ej:
  • Colecciones: Singular en nombre, de lo que va a ser una colección de, por ejemplo: Pregunta
  • Campos del documento, por ejemplo: MemberFirstName

Honestamente, no importa demasiado, siempre y cuando sea consistente para el proyecto. Solo ponte a trabajar y no te preocupes por los detalles: P


Hasta que obtengamos SERVER-863 mantener los nombres de los campos lo más cortos posible es aconsejable, especialmente donde tiene muchos registros.

Dependiendo de su caso de uso, los nombres de campo pueden tener un gran impacto en el almacenamiento. No puedo entender por qué esta no es una prioridad más alta para MongoDb, ya que tendrá un impacto positivo en todos los usuarios. Si nada más, podemos comenzar a ser más descriptivos con nuestros nombres de campo, sin pensar dos veces en el ancho de banda y los costos de almacenamiento.

Por favor SERVER-863


Incluso si no se especifica ninguna convención al respecto, las referencias manuales se nombran consistentemente después de la colección referenciada en la documentación de Mongo, para las relaciones de uno a uno. El nombre siempre sigue la estructura <document>_id .

Por ejemplo, en una colección de dogs , un documento tendría referencias manuales a documentos externos nombrados así:

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

Esto sigue la convención de Mongo de nombrar _id el identificador para cada documento.


BASE DE DATOS

  • el caso de Carmel
  • anexar DB al final del nombre
  • hacer singular (colecciones son plurales)

MongoDB establece un buen ejemplo:

Para seleccionar una base de datos para usar, en el shell mongo, emita la instrucción de uso, como en el siguiente ejemplo:

usar myDB
usa myNewDB

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

COLECCIONES

  • Nombres en minúsculas: evita problemas de sensibilidad de mayúsculas y minúsculas, los nombres de colecciones de MongoDB distinguen entre mayúsculas y minúsculas.

  • Plural: más obvio para etiquetar una colección de algo como el plural, por ejemplo, "archivos" en lugar de "archivo"

  • > Sin separadores de palabras: evita problemas donde diferentes personas (incorrectamente) separan palabras (nombre de usuario <-> nombre_usuario, primer nombre <->
    nombre de pila). Este es tema de debate según algunas personas
    por aquí, pero siempre que el argumento esté aislado de los nombres de las colecciones, no creo que deba serlo;) Si se encuentra mejorando el
    legibilidad del nombre de su colección agregando guiones bajos o
    camelCasar tu nombre de colección es probablemente demasiado largo o deberías usar
    períodos según corresponda, que es el estándar para la recolección
    categorización.

  • Notación de puntos para colecciones de detalles más altos: da alguna indicación de cómo se relacionan las colecciones. Por ejemplo, puede estar razonablemente seguro de que podría eliminar "users.pagevisits" si eliminó "usuarios", siempre que las personas que diseñaron el esquema hayan hecho un buen trabajo.

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

Para las colecciones, sigo estos patrones sugeridos hasta que encuentre la documentación oficial de MongoDB.