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

时间:2011-04-19 09:56:17

标签: mongodb node.js mongoose

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

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

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

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

1 个答案:

答案 0 :(得分:8)

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