首页 新闻 会员 周边 捐助

复杂xml文档适合存储到mongodb吗?如果适合解析的时候应该怎么设计数据模型?

0
悬赏园豆:50 [已解决问题] 解决于 2016-08-26 16:10

复杂xml文档适合存储到mongodb吗?如果适合解析的时候应该怎么设计数据模型?

悟空,你真了不得的主页 悟空,你真了不得 | 初学一级 | 园豆:169
提问于:2016-08-19 15:08
< >
分享
最佳答案
0

都使用了mongodb了,为啥不使用json呢,用xml是什么意思?

 

收获园豆:50
刘宏玺 | 专家六级 |园豆:14020 | 2016-08-19 15:28

我们需要对xml进行解析获取里面的数据。

悟空,你真了不得 | 园豆:169 (初学一级) | 2016-08-19 15:31

@杨小剑: 看来是不好解析的数据,那保存到数据库就成为了很简答的问题了,要么直接将文本保存的数据库,要么将文件保存到磁盘,在数据库中保存连接,怎么存都差不多。

刘宏玺 | 园豆:14020 (专家六级) | 2016-08-19 15:34

@刘宏玺: 还是保存到数据库中比较好吧,但是这里有困难,xml里的节点是动态,表不好设计,所以想到了文档型数据库。但是试了试mongodb,把整个xml放到一个collection里没法查询了,然后把xml解析分解关联关系又不好办了。

悟空,你真了不得 | 园豆:169 (初学一级) | 2016-08-19 15:41

@杨小剑: 看来你是想方便解析,那就直接将xml转成json就可以了,不需要模型也是可以保存的数据库的,而且数据关联也是存在的

刘宏玺 | 园豆:14020 (专家六级) | 2016-08-19 15:43

@刘宏玺: 这样是能放进去,但是查询没法查啊,一个json树下来,各种层级,怎么查?

悟空,你真了不得 | 园豆:169 (初学一级) | 2016-08-19 15:44

@杨小剑: 因为你的xml是动态的,所以json就是动态的,你要是想查,那就用js的for in 查呗(其他语言肯定也有类似的语法),递归查询,这有啥难的,你的xml肯定是有一定规律的,不然你保存下来干啥!

刘宏玺 | 园豆:14020 (专家六级) | 2016-08-19 15:48

@刘宏玺: 几兆或十几兆的xml文档按你这么说每次都整个查询一遍,这样好么?我的想法是把xml分解成多个,放在一个文档里,还要把关联关系对应上,这样就算有个完整的数据模型,以后不管xml怎么变都能方便获取数据。您能明白我的意思吗?

悟空,你真了不得 | 园豆:169 (初学一级) | 2016-08-19 15:57

@杨小剑: 我不知道你的xml是什么结构,当然你说的分解我肯定是不明白了,反正现在服务器的效率,处理几十兆的都是很快的,不信你试试!

我这边的xml都达到了500多M的也就一两秒,解析处理+保存数据库的工作就都完成了

如果你觉得有必要分解也是可以的,怎么方便怎么使用呗!

刘宏玺 | 园豆:14020 (专家六级) | 2016-08-19 16:00

@刘宏玺: 您说的这种xml是直接转换成json存储到mongodb里面吗?那您获取查询数据是怎么做的?

悟空,你真了不得 | 园豆:169 (初学一级) | 2016-08-19 16:04

@杨小剑: 我是直接查xml的,没有使用mongodb,我的只是把xml中的数据保存到了oracle中,可能没有你的那么复杂。

你先按照你想的做一下,先实现功能,然后在考虑效率,然后你就会发现世界是多么的美好了!

刘宏玺 | 园豆:14020 (专家六级) | 2016-08-19 16:06

@刘宏玺: 方便加一下QQ吗?我Q1058383465

悟空,你真了不得 | 园豆:169 (初学一级) | 2016-08-19 16:17

@杨小剑: 加了

刘宏玺 | 园豆:14020 (专家六级) | 2016-08-19 16:18
其他回答(2)
0

我们公司的人,搞了一下,直接在.net里定义Model就行,mongo都是json存,这有什么合适不合适的?你的XML文档能有什么数据啊?

顾晓北 | 园豆:10893 (专家六级) | 2016-08-19 15:27

几兆或者十几兆吧。存储的话是直接把整个文档插入到mongodb的一个collection里吗?要是分解的话,复杂的xml(层级关系比较多)对应关系怎么办?

支持(0) 反对(0) 悟空,你真了不得 | 园豆:169 (初学一级) | 2016-08-19 15:30
0

肯定适合啊,mongodb这种非关系数据库,每条记录的键都可以不一样的,数据模型就按xml文档的数据结构呗

伪善者ql | 园豆:250 (菜鸟二级) | 2016-08-22 17:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册