Ruby 在mongodb中存储文件系统树,并作为flex应用程序的json

Ruby 在mongodb中存储文件系统树,并作为flex应用程序的json,ruby,apache-flex,json,mongodb,Ruby,Apache Flex,Json,Mongodb,我想将文件系统树存储到Ruby应用程序中的MongoDB中,因此我们讨论的是json/bson表示形式,如: / /foo /foo/one /foo/bar/two /foo/bar/three /four 我的目标是高效地存储它,并通过json将它提供给AdobeFlex应用程序,该应用程序将在树组件中显示它 您认为哪种解决方案最好? 提出了一些选择。 我想使用这种格式来选择第一种模式(记住16Mb文档大小的限制): {"/" => [{"foo" => ["one", {"b

我想将文件系统树存储到Ruby应用程序中的MongoDB中,因此我们讨论的是json/bson表示形式,如:

/
/foo
/foo/one
/foo/bar/two
/foo/bar/three
/four
我的目标是高效地存储它,并通过json将它提供给AdobeFlex应用程序,该应用程序将在树组件中显示它

您认为哪种解决方案最好?
提出了一些选择。 我想使用这种格式来选择第一种模式(记住16Mb文档大小的限制):

{"/" => [{"foo" => ["one", {"bar" => ["two", "three"]}]}, "four"]}
你觉得怎么样?这是存储分层文件系统树的好格式吗


欢迎提出任何建议。

解决此问题的方法有很多,但以下是Flex(而不是服务器)最简单的解决方案

您发布的示例数据在我看来有点奇怪。默认情况下,Flex tree组件接收一个对象(任何类型),并查看其中是否有一个名为“children”的属性,如果有,它将从那里分支出来

因此,如果您希望在树组件中显示该目录结构,您将发送类似以下内容的JSON:

{name:'/', children:[{name:'foo', children:[{name:'one'},{name:'bar', children:[{name:'two'},{name:'three'}]}]},{name='four'}]}

有意义吗?

这是一个相当标准的树表示形式,您打算如何访问它?您是刚从MongoDB中取出它,还是在它还在MongoDB中时尝试查看它?可能是@muistooshort的副本:我会将它原样导出到flex应用程序。也许flex应用程序中会实现一些基本的搜索功能,但我计划在json对象转换为哈希后处理它。感谢flex方面的建议。它将增加我的json大小。我必须检查16Mb的限制是否足够。也许我需要在ruby层进行某种“转换”,但我不喜欢这样。等待别人的回复。。。让我们看看是否有人有其他建议。等等,什么?!16毫克?就我个人而言,我不会使用JSON,因为它效率不高。AMF更适合于较大的数据集。另外,我的示例只是为了让树能够轻松地显示它。您总是可以进行客户端转换,但是如果您有16兆的数据,客户端转换就不太现实了。。。你到底在实现什么?它是一个本地应用程序,所以数据在本地交换,没有web或远程接口,只有本地AIR应用程序,所以传输速率不是问题。顺便说一句,我不认为16Mb的限制会达到,这是最坏的情况下,有人希望整个高清显示在控制台,通常只有少数目录(递归)在主目录中收集。之所以没有选择AMF,是因为flex应用程序不是唯一一个请求数据的应用程序,而且我们希望所有应用程序都使用一个api,json似乎是最佳选择。呃,您有一个Air应用程序需要与中间件解决方案通信以获取文件系统的目录结构吗?你知道空气可以进入FS对吗?不管怎样,你总是可以使用一个json字符串让它
{'/':['foo':['one','bar':['one','three']],'four']}
,但是你需要在Flex端将它解析成一个合适的
层次数据
结构,以便它在树中工作。我必须表示的文件系统不是来自本地机器。。。它由不同机器上的不同“传感器”存储在数据库中,这些“传感器”收集数据,然后使用控制台将其可视化。