为什么模型名称在Mongoose中很重要?

时间:2016-10-26 17:09:42

标签: node.js mongoose

为什么model name在猫鼬中很重要?据我所知,给定一个模型名称,Mongoose可以尝试猜测集合名称。但是,对于此应用程序,仅显式指定集合名称而不是模型名称似乎更好更容易。

Mongoose中使用的型号名称还有哪些?

1 个答案:

答案 0 :(得分:1)

Mongoose是一个对象数据映射(ODM)库,用于类似于Ruby on Rails和其他一些框架中的Object Relational Mapping(ORM)的节点。因此,它遵循或多或少相同的规则(或指南,因为您可以覆盖它们):

ORM:

  • 班级名称资本和单数
  • 表名小而复数
  • 将对象映射/转换为表格行,反之亦然
  • 类及其对象具有方法/钩子

ODM:

  • 型号名称大写和单数(例如用户)
  • 集合名称小和复数(例如用户)
  • 模型对象映射/转换为集合文档,反之亦然(例如模型的对象:new User({name: "abc"}),集合中的文档:{"name": "abc"}
  • 模型及其对象有方法/钩子(例如pre,post hooks; validations等)

映射是在不兼容的类型之间,如Ruby类的对象到SQL表的一行;和一个Mongoose模型的JavaScript对象(例如可以有函数)到mongodb的JSON文档(有效的JSON不能有函数)。

由于类和表,模型和集合是不同的实体(虽然相关)并且用于不同的目的,因此它们的命名方式不同(尽管类似)。因此需要Mongoose中的模型名称!