Node.js 什么';在mongodb中存储n^2网络/图形的最佳方式是什么?

Node.js 什么';在mongodb中存储n^2网络/图形的最佳方式是什么?,node.js,mongodb,graph,database,Node.js,Mongodb,Graph,Database,我有一个节点网络,其中每个节点都有关于其他节点的信息。存储这些数据最有效的方法是什么?这些网络可以有多达数万个节点 我应该为每个节点创建一个包含对其他节点引用的文档,还是应该创建一个包含所有数据的大型树结构?或者还有其他内容吗?您考虑过为每个边缘创建一个文档吗?是的,这就是解决方案,我为每个节点(边缘)创建一个文档,其中包含所有其他节点的值。这很好,但我想知道,如果不移动到图形数据库,是否还有更好的方法。您不能将所有其他节点放在文档中,您将达到文档大小限制。每边文档的方法会有一个非常小的文档,其

我有一个节点网络,其中每个节点都有关于其他节点的信息。存储这些数据最有效的方法是什么?这些网络可以有多达数万个节点


我应该为每个节点创建一个包含对其他节点引用的文档,还是应该创建一个包含所有数据的大型树结构?或者还有其他内容吗?

您考虑过为每个边缘创建一个文档吗?是的,这就是解决方案,我为每个节点(边缘)创建一个文档,其中包含所有其他节点的值。这很好,但我想知道,如果不移动到图形数据库,是否还有更好的方法。您不能将所有其他节点放在文档中,您将达到文档大小限制。每边文档的方法会有一个非常小的文档,其中只引用了两个节点和该边上的任何数据。不@Ian Mercer,每个边都会有关于其他边的信息,因为它们都有关于彼此的信息。这就是为什么我对这个解决方案不满意。只有邻居的信息不适用于我的用例。我认为在任何人回答这个问题之前,你需要解释你的用例。有一些map-reduce技术可以应用于计算可能适用的图遍历。但不管怎样,您不能在单个文档中为任何重要的n存储任何内容的n,因此无论是节点还是边,您都需要一种方法,即每个节点有一个文档,每个边有一个文档,再加上任何可能有助于计算图遍历的非规范化。图形数据库是否更好取决于节点的大小、边的大小、它们的索引方式以及您的查询模式。您是否考虑过为每个边创建一个文档?是的,这就是我为每个节点(边)创建一个文档的解决方案,其中包含所有其他节点的值。这很好,但我想知道,如果不移动到图形数据库,是否还有更好的方法。您不能将所有其他节点放在文档中,您将达到文档大小限制。每边文档的方法会有一个非常小的文档,其中只引用了两个节点和该边上的任何数据。不@Ian Mercer,每个边都会有关于其他边的信息,因为它们都有关于彼此的信息。这就是为什么我对这个解决方案不满意。只有邻居的信息不适用于我的用例。我认为在任何人回答这个问题之前,你需要解释你的用例。有一些map-reduce技术可以应用于计算可能适用的图遍历。但不管怎样,您不能在单个文档中为任何重要的n存储任何内容的n,因此无论是节点还是边,您都需要一种方法,即每个节点有一个文档,每个边有一个文档,再加上任何可能有助于计算图遍历的非规范化。图形数据库是否更好取决于节点的大小、边的大小、它们的索引方式以及您的查询模式。