MongoDB - 具有许多动态属性的集合

时间:2016-06-21 18:06:09

标签: mongodb database-design nosql

在我的应用程序中,我必须保存一个定义特定实体的“描述符”。所有这个实体都有一些固定属性和一些变量属性。

因为我来自RDBMS,所以我很难理解如何建模这些数据:

在RDBMS中,我将:

  • 为此集合的每一个创建单独的表(没有其他方法..)

在MonboDB中,最好还有单独的集合,或者只有一个集合,每个文档都有固定字段和动态?

这是一些例子:

第一份文件

{
    "name": "entityName",
    "type": "entityType",
    "date": "the Date",
    "fieldA": "valueForFieldA",
    "fieldB": "fieldB",
}

第二份文件

{
    "name": "entityNameTwo",
    "type": "entityTypeTwo",
    "date": "the Date for Two",
    "fieldC": "fieldC"
}

因此,第一个文档包含fieldAfieldB,第二个文档包含fieldC(因此,没有fieldAfieldB - 这些是动态属性)。两个文档都是descriptors,但是带有变量属性

我的问题是:

  1. 最好创建一个名为descriptors的集合,然后存储所有文档? descriptors在动态字段方面可能非常大(例如,我可以有50/100种文档,每种文档都有自己的“变量”字段)

  2. 最好是创建单独的集合(如在RDBMS中),每个字段看起来像一列?

  3. 不知道:)也许有一个更好的解决方案,我不知道...(RDBMS背景没有帮助...)

  4. 当然,在RDBMS中,解决方案很简单(解决方案1.,没有替代方案)

    感谢您的建议帮助。

0 个答案:

没有答案