Mongodb 为什么要定义模式?

Mongodb 为什么要定义模式?,mongodb,mongoose,Mongodb,Mongoose,我不熟悉MongoDB和mongoose,我读到MongoDB是无模式的,但我也读到可以并鼓励定义模式。 如果数据库不需要模式,为什么我需要定义模式?因为数据库中的文档通常表示可重用对象容器(原型/类)的实例。这些通常看起来至少大体相似 虽然有过多的编程范例涉及对象结构/类型系统(多态性、[原型/多重]继承、duck类型等),但其共同点是,以某种方式将某些数据字段排列在一起是有意义的 由于MongoDB不强制执行严格的模式,因此它与几乎所有这些范例都兼容。当使用MongoDB存储可重用容器类型的

我不熟悉MongoDB和mongoose,我读到MongoDB是无模式的,但我也读到可以并鼓励定义模式。
如果数据库不需要模式,为什么我需要定义模式?

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

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

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

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