在MongoDB中存储大型XML

Ven*_*ram 8 xml mongodb

我有一个非常巨大的xml(> 10mb大小和40+元素).目前,我们将此类xml存储在Oracle数据库中,并使用xquery查询和检索部分xml.此过程很慢,需要多次db调用.我们正在探索mongodb来存储这个xml并进行查询.我justed将xml转换为json并加载到mongo集合中,它将巨大的json数据存储在flash中.它将xml节点存储为嵌套文档.但是当我查询(使用find)最内层元素时,它总是返回整个doc,包含具有不匹配元素值的节点.我希望只有少数节点匹配给定的节点值.如果有最好的方法在mongo db中存储这么大的xml文件,请告诉我.并且还让我知道如何检索具有查询中指定的确切值的内部节点.提前致谢.

小智 10

您是否考虑过尝试使用最新的XML数据库,例如BaseX(http://basex.org)?它可能会给你更好的结果,特别是如果你之前使用过XQuery.


sin*_*law 5

我有同样的问题.在我的例子中,每个XML文件中的顶级节点总是包含一个较大的较小节点列表,所以我最终存储了这些项目.为此,我编写了自己的xml-to-json命令行工具.我用它将10GB的XML数据转换成JSON,格式为mongoimport可以吃.


Ram*_*Vel 1

这是过滤多级嵌入文档的行为,通常匹配过滤器会返回整个文档,而不是子集。

查看我对mongodb-querying-array-elements-within-a-documenthow-to-find-the-matched-record-in-mongodb 的回答以获取更多信息

也许您可以添加当前拥有的示例 xml 架构,有人会帮助您构建应用程序。