【发布时间】:2016-04-28 01:18:26
【问题描述】:
我是 MongoDB 和 mongoose 的新手,我读到 mongodb 是无模式的,但我也读到可以并鼓励定义模式。 如果数据库不需要,为什么我需要定义一个模式?
【问题讨论】:
我是 MongoDB 和 mongoose 的新手,我读到 mongodb 是无模式的,但我也读到可以并鼓励定义模式。 如果数据库不需要,为什么我需要定义一个模式?
【问题讨论】:
因为通常情况下,数据库中的文档代表可重用对象容器(原型/类)的实例。这些通常看起来至少大致相似。
虽然有大量与对象结构/类型系统(多态性、[原型/多重]继承、鸭子类型等)有关的编程范式,但共同点是以某种方式将某些数据字段排列在一起是有意义的。
由于 MongoDB 不强制执行严格的模式,它几乎兼容所有这些范例。当使用 MongoDB 存储可重用容器类型的实例时,定义这样的模式很有意义,因为它可以帮助包装器提供方便的方法、验证帮助器或注入合理的默认值。
不过,您也可以将 MongoDB 用作 JSON 文档的大型哈希表 - 在这种情况下,架构没有意义。
【讨论】: