2016-01-21 127 views
2

我是MongoDB和猫鼬的新手,我读到mongodb是无模式的,但我也读过,可以并鼓励定义一个模式。 为什么我需要定义一个模式,如果数据库不需要?为什么要定义一个模式?

回答

3

因为通常情况下,数据库中的文档表示可重用对象容器(原型/类)的实例。这些通常看起来至少很相似。尽管存在与对象结构/类型系统(多态性,[protoypical/multiple]继承,鸭子打字等等)有关的编程范例过多,但共同点在于它以某种方式将某些数据字段组织在一起是有意义的。

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

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

相关问题