【问题标题】:Object metadata (schema) design in mongodbmongodb中的对象元数据(模式)设计
【发布时间】:2014-10-24 22:33:59
【问题描述】:

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

对于我的 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 文档元设计”时,我得到了无用的信息。

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

【问题讨论】:

    标签: javascript json mongodb meteor


    【解决方案1】:

    由于您将此标记为具有 Meteor 连接,因此我将向您指出简单模式:https://github.com/aldeed/meteor-simple-schema/。我使用它,以及相关的 collection2 包。我发现这是记录和实施模式设计的好方法。当与 autoform 包一起使用时,它还提供了一种直接从您的模式创建经过验证的表单的方法。

    【讨论】:

      【解决方案2】:

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

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

      我也想有能力创建新的文档类型,修改 他们的字段通过我的应用程序的管理面板。

      对于管理活动,您可以查看以下选项:

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

      一旦你完成了,你可能想把这篇文章当作开场白:

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

      在 Mongo DB 中,您不会创建集合。你刚开始使用它们。所以你不能事先定义模式。该集合是在您对集合进行的第一次插入时创建的。只需确保在将文档插入集合之前确保集合上有索引:

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

      所以这一切都取决于维护插入到集合中的文档的结构,而不是定义集合。

      【讨论】:

        猜你喜欢
        • 2011-06-30
        • 2013-07-11
        • 1970-01-01
        • 1970-01-01
        • 2018-06-09
        • 2011-08-24
        • 1970-01-01
        • 2014-06-05
        • 1970-01-01
        相关资源
        最近更新 更多