MongoDB,Mongoose和Node.js. 为什么申报模特?

Pon*_*ono 5 mongoose mongodb node.js

我是面向文档的数据库的新手.我的问题是为什么每次我的应用程序启动时都必须在MongoDB中声明一个模型?例如:

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

我想构建所有表ONCE,并在我的应用程序中只提供或查询数据.我认为应该通过CLI或特殊管理员设置所有数据架构(比如说mypql的PhpMyAdmin).

事实证明,在我的应用程序开始时,我每次都声明一个数据模型.对我没有意义.救命 :)

nee*_*ebz 8

您需要声明一个模型,因为MongoDB本身只存储集合,并不真正绑定到模式/模型.Mongoose提供了一种定义模型的方法,但有些驱动程序甚至没有提供一个模型(参见Candy for Ruby).这就是拥有面向文档的数据库的重点.您并没有真正绑定到模式,并根据需要动态更改数据库的数据结构.