NoSql中的分层数据表示 - 设计选择

时间:2016-02-28 21:49:20

标签: mongodb nosql

例如,我们假设下面是嵌套数据:其中每个单词标有' ^'将有大量的CRUD操作。并且没有用' ^'标记的单词还将进行CRUD操作但数量有限。

此外,这些单词可能会有新的孩子。继续。

必须考虑哪些好的设计选项/问题来代表这些数据。 mongodb(NoSQL)中的单个文档还是多个文档?

DISTRICT^
  cities^
    streets
      flats^
        houses
          rooms
            lightBulbs^

1 个答案:

答案 0 :(得分:1)

首先,您需要考虑16MB的文档大小限制 - 如果是这种情况 - 那么数据需要在多个文档中。

然后 - 您需要能够在该结构上构建有效的查询。因此,尝试自下而上构建模式(意味着包括从下到上的成员),并加载测试数据 - 以查看性能。 Mongo在更新子文档方面提供了很大的灵活性,但在驱动程序级别(如c#),最终可以获得完整的大文档,执行就地更新并将更改推送回mongo。

分割数据时 - 您必须对受影响的数据执行一组更新 - 因此您将在一个文档上放弃一个原子更新。

要考虑的其他事项是架构(一个服务器或分片集群),这将影响您如何分割负载和扩展。