为什么要定义架构?

时间:2016-01-21 16:58:56

标签: mongodb mongoose

我是MongoDB和mongoose的新手,我读到mongodb是无架构的,但我也读到可以并且鼓励人们定义一个架构。 如果db不需要,我为什么需要定义模式?

1 个答案:

答案 0 :(得分:3)

因为数据库中的文档通常表示可重用对象容器(原型/类)的实例。这些通常看起来至少大致相似。

虽然有大量的编程范例涉及对象结构/类型系统(多态,[原型/多重]继承,鸭子类型等),但共同点是以某种方式将某些数据字段排列在一起是有意义的。

由于MongoDB没有强制执行严格的模式,因此它几乎与所有这些范例兼容。当使用MongoDB来存储可重用容器类型的实例时,定义这样的模式是有意义的,因为它有助于包装器提供方便的方法,验证帮助器或注入合理的默认值。

但是,您也可以将MongoDB用作JSON文档的大型哈希表 - 在这种情况下,架构没有意义。