Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb NoSql中的分层数据表示——设计选择_Mongodb_Nosql - Fatal编程技术网

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

Mongodb NoSql中的分层数据表示——设计选择,mongodb,nosql,Mongodb,Nosql,例如,让我们假设以下嵌套数据:其中每个标有“^”的单词都有大量CRUD操作。而没有用“^”标记的单词也会有CRUD操作,但数量有限 此外,这些“单词”可能会有新的孩子 为了表示这些数据,必须考虑哪些好的设计选项/问题。mongodb(NoSQL)中的单个文档还是多个文档 首先,您需要考虑16MB文档大小限制—如果是这样的话—然后数据需要位于多个文档中 然后-您需要能够在该结构上构建有效的查询。因此,尝试自下而上构建模式(意味着从下到上包含成员),并加载测试数据,以查看性能。 Mongo在更新子文

例如,让我们假设以下嵌套数据:其中每个标有“^”的单词都有大量CRUD操作。而没有用“^”标记的单词也会有CRUD操作,但数量有限

此外,这些“单词”可能会有新的孩子

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


首先,您需要考虑16MB文档大小限制—如果是这样的话—然后数据需要位于多个文档中

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

当您分割数据时,您将不得不对受影响的数据执行一组更新,因此您将在一个文档上丢失一个原子更新


另一个要考虑的是一个体系结构(一个服务器或共享集群),这将对如何划分负载和规模产生影响。

谢谢您的建议——文档中的缩略图可能会使它接近/超过16MB(我还没有考虑如何处理GRIDFS?)否则,文本本身将始终小于16mb-可以单独处理图像吗?这个问题可能很幼稚——因为我是web后端的新手。是的——您可以将图像推送到gridFS,并在基本文档中只存储对它的引用。玩得开心!
DISTRICT^
  cities^
    streets
      flats^
        houses
          rooms
            lightBulbs^