2011-05-06 27 views
113

¿Existe un conjunto de convenciones de nomenclatura preferidas para las entidades de MongoDB, como bases de datos, colecciones, nombres de campos?¿Qué son las convenciones de nombres para MongoDB?

estaba pensando a lo largo de estas líneas:

  • Bases de datos: consiste en el propósito (palabra en singular) y terminan con “db” - todo en minúsculas: Imagedb, resumedb, memberdb, etc.
  • Colecciones: plural en minúsculas: imágenes, hojas de vida,
  • Campos del documento: lowerCamelCase, por ejemplo memberFirstName, nombre de archivo, etc

Respuesta

79
  1. Keep'em corta: Optimizing Storage of Small Objects, 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 deben llamarse en singular o en plural ...

  3. MongoDB habla JavaScript, por lo tanto, utilice las convenciones de nombres JS de camelCase.

  4. MongoDB documentación oficial menciona que puede utilizar guiones, también incorporadas identificador es el nombre _id (pero esto puede ser para indicar que _id pretende ser privada, interna, nunca mostró ni editar.

+71

3 y 4 son un poco contradictorios: JS prefiere camelcase, Mongo parece preferir los guiones bajos ... pero en caso de duda, opte por los guiones bajos. Las personas acostumbradas a los alfabetos no latinos se lo agradecerán. –

+1

Vea esta pregunta para el debate único vs plural: http://stackoverflow.com/questions/338156/table-naming-dilemma-singular-vs-plural-names – Jason

+4

No estoy seguro de que diría "JS prefiere camelcase ". JS no tiene ninguna preferencia, pero tal vez sea cierto decir que * la mayoría de los programadores de JS tienden a usar camel case. – treeface

1

Creo que es todo preferencia personal Mis preferencias se derivan del uso de NHibernate, en .NET, SQL Server, por lo que probablemente difieren de lo que utilizan otros

  • Bases de datos:.. La aplicación que está siendo utilizado .. por ejemplo: Apilar desbordamiento
  • Colecciones: singular en el nombre, lo que va a ser una colección de, ex: Pregunta
  • campos del documento, por ejemplo: MemberFirstName

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

+0

Creo que el que podría tener consecuencias son los campos del documento, ya que se almacenarán dentro de cada documento. Como Tomasz señaló, mantenerlos cortos debería ahorrar espacio/ancho de banda. Sin embargo, creo que es mucho más importante que uses algo que sea fácil de entender. –

2

Hasta que obtengamos SERVER-863 manteniendo los nombres de los campos lo más cortos posible, es aconsejable , especialmente donde tienes 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 sobre el ancho de banda & costos de almacenamiento.

Por favor, haga vote.

16

Aunque no se especifique ninguna convención al respecto, manual references recibe el nombre consecutivo de la colección referenciada en la documentación de Mongo, para relaciones de uno a uno. El nombre siempre sigue la estructura <document>_id.

Por ejemplo, en una colección dogs, un documento hubiera referencias a documentos externos manuales nombradas como esto:

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

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

4

convención de nombres para la recolección

Para nombrar una colección de algunas precauciones que deben tomarse:

  1. Una colección con la 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 son compatibles con "$" en el nombre de la colección.

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

  5. Una base de datos con la cadena vacía (“”) no es un nombre de base de datos válida.
  6. El nombre de la base de datos no puede tener 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 que no distinguen entre 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 obtener más información.Por favor, compruebe el siguiente enlace: http://www.learnit.net.in/2016/03/schema-design-and-naming-conventions-in.html

5

BASE DE DATOS

  • camelCase
  • append DB en el final del nombre
  • hacen singulares (colecciones son plurales)

MongoDB establece una buen ejemplo:

Para seleccionar una base de datos a utilizar, en la consola mongo, emita la sentencia uso , como en el siguiente ejemplo:

uso myDB
uso myNewDB

contenido desde: https://docs.mongodb.com/manual/core/databases-and-collections/#databases

COLECCIONES

  • nombres en minúsculas: evita problemas de sensibilidad de caso, nombres de colección MongoDB entre mayúsculas y minúsculas.

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

  • > No hay palabras separadores: evita cuestiones en las diferentes personas (incorrectamente) separar las palabras (nombre de usuario < -> nombre_de_usuario, First_Name < ->
    apellido). Éste es un tema de debate de acuerdo con algunas personas
    por aquí, pero siempre y cuando el argumento se aísla a los nombres de colecciones no creo que debería ser;) Si usted se encuentra la mejora de la
    legibilidad de su nombre de la colección añadiendo caracteres de subrayado o
    camelCasando el nombre de su colección es probablemente demasiado largo o debería usar
    períodos según corresponda, que es el estándar para la categorización de la colección
    .

  • Dot notación para colecciones detalle más altas: da alguna indicación de cómo se relacionan las colecciones. Por ejemplo, puede ser razonablemente seguro de que podría eliminar "users.pagevisits" si eliminó "usuarios", ha proporcionado a la gente que diseñó el esquema hicieron un buen trabajo .

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

Para colecciones estoy siguiendo estos patrones sugeridos hasta que encuentre la documentación oficial MongoDB.

Cuestiones relacionadas