2011-04-19 19 views
5

Soy nuevo en las bases de datos orientadas a documentos. Mi pregunta es ¿por qué tengo que declarar un modelo en MongoDB cada vez que se inicia mi aplicación? Por ejemplo:MongoDB, Mangosta y Node.js. ¿Por qué declarar un modelo?

mongoose.model('User', { 
    collection: 'user', 
    properties: [ 
    'created', 
    'username', 
    'password', 
    'email' 
    ]} //Edited: '}' was missing in original post 
); 

Quiero construir todas las tablas UNA VEZ y en mi aplicación solo alimentar o consultar datos. Pensé que toda la arquitectura de datos debería establecerse mediante CLI o un administrador especial (digamos PhpMyAdmin for mySql).

Resulta que al comienzo de mi aplicación cada vez que declaro un modelo de datos. No tiene sentido para mí. Ayuda :)

Respuesta

8

Debe declarar un modelo porque, en esencia, MongoDB solo almacena las colecciones y no se vincula realmente a un esquema/modelo. Mongoose proporciona un método para definir un modelo, pero hay controladores que realmente ni siquiera ofrecen uno (ver Candy for Ruby). Ese es el objetivo de tener una base de datos orientado a documentos. En realidad, no está vinculado a un esquema y realiza cambios en la estructura de datos de su base de datos sobre la marcha, según los requisitos.

+0

Exactamente como dice @neebz. Creo que lo importante de recordar acerca de las bases de datos orientadas a documentos es que se parece más a una tienda de "objetos". Puede crear objetos arbitrarios y guardarlos en una "colección". Lo que significa que no hay columnas definidas de antemano (en un sentido SQL). – shaond

Cuestiones relacionadas