mongodb中的对象元数据(schema)设计



首先,我不知道它在计算机中是如何调用的,因为:

对于我的mongo应用程序中的每一种文档类型,我都想定义一个结构,每个字段都定义了它的约束、验证模式,通常还有可以查看、修改和删除此文档的角色。

例如:Book:

{
 name: "Book",
 viewRoles: ["Admin","User"],
 createRoles: ["Admin"],
 modifyRoles: ["Admin", "User"],
 fields: [
 {
    id:"title",
    name:"Book Title",
    validation: "",
    maxLength: 50,
    minLength: 3,
    required: true
   },
   {
    id:"authorEmail",
    name:"Email of the Author",
    validation: "email",
    maxLength: 50,
    minLength: 3,
    required: false
   }
 ]
}

然后,如果我的所有文档都有这个"模式",我就可以有一个视图来创建、修改和显示这个"实体"。

我还希望能够创建新的文档类型,通过我的应用程序的管理面板修改它们的字段。

当我在谷歌上搜索"mongo动态模式"、"mongo文档元设计"时,我得到了无用的信息。

我的问题是它是如何被调用的——当我想拥有我的文档的预定义架构并能够修改它时。我在哪里可以获得关于如何设计这样的系统的更多信息?

由于您将其标记为具有Meteor连接,我将向您介绍Simple Schema:https://github.com/aldeed/meteor-simple-schema/.我使用它以及相关的collection2软件包。我发现这是一种很好的方式来记录和执行模式设计。当与autoform包一起使用时,它还提供了一种直接从架构创建已验证表单的方法。

我认为您正在寻找如何对数据建模。以下链接可能会有所帮助:

http://docs.mongodb.org/manual/data-modeling/

我还希望能够创建新的文档类型,修改他们的字段通过我的应用程序的管理面板。

对于管理活动,您可以查看中给出的选项:

http://docs.mongodb.org/ecosystem/tools/administration-interfaces/

一旦你完成了,你可能想把它作为一个开始:

https://blog.serverdensity.com/mongodb-schema-design-pitfalls/

在MongoDB中,您不创建集合。你只是开始使用它们。因此,您不能预先定义模式。集合是在您第一次插入集合时创建的。在将文档插入集合之前,只需确保集合上有索引:

db.collection.ensureIndex({keyField: 1})

因此,这完全取决于维护插入到集合中的文档的结构,而不是定义集合。

最新更新