Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.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
Java Spring数据MongoDB、orm与json_Java_Json_Spring_Mongodb_Hibernate - Fatal编程技术网

Java Spring数据MongoDB、orm与json

Java Spring数据MongoDB、orm与json,java,json,spring,mongodb,hibernate,Java,Json,Spring,Mongodb,Hibernate,所以,这是我的难题。。。 我习惯于在后端构建Spring MVC RESTful web服务。我通常使用SQL关系数据库,如Oracle、Postgres、MySQL。我使用最新的hibernate,我使用hibernate注释,我创建了所有的实体和Dao,一切都以这种方式进行 我正在做一个附带项目,我们将使用其他供应商提供的几种不同的web服务。它们都有非常不同的数据,都是JSON格式的。我们知道。。。JSON格式的数据可能会随着时间的推移而改变 我们想把这些都放到NoSQL数据库中,我们将使

所以,这是我的难题。。。 我习惯于在后端构建Spring MVC RESTful web服务。我通常使用SQL关系数据库,如Oracle、Postgres、MySQL。我使用最新的hibernate,我使用hibernate注释,我创建了所有的实体和Dao,一切都以这种方式进行

我正在做一个附带项目,我们将使用其他供应商提供的几种不同的web服务。它们都有非常不同的数据,都是JSON格式的。我们知道。。。JSON格式的数据可能会随着时间的推移而改变

我们想把这些都放到NoSQL数据库中,我们将使用MongoDB。这将是我第一次尝试使用NoSQL数据库,所以我一直在研究Spring数据MongoDB

SpringDataMongoDB似乎希望使用类似hibernate的模型和POJO的。。。但我知道我导入的JSON数据似乎永远不会适合POJO模型。似乎还有另一个针对SD MongoDB的投诉,当你去提取数据时,你会提取整个文档及其所有子结构。。。我不知道这些是真是假

本质上,我想要的是一个MongoDB收集表来存储这个JSON数据

假设供应商数据如下所示:

Vendor 1   {"a":1,"b","2","c":3}
Vendor 2   {"x":"x1","y","y22","z":"z333"}
Vendor 3   {"aa":11,"bb","22","cc":33}
然后,我希望one集合具有以下字段:

   a : 1
   b : 2
   c : 3
   x : x1
   y : y22
   z : z333
等等。。。。和所有字段的聚合

我已经看到了我们可以从MongoDB的“DBObject”到JSON,从JSON到“DBObject”。。。但我不确定这是否有效?我期待着测试它

因此,如果有人有将多个不同的JSON输入存储到一个表或集合中的经验,请告诉我


谢谢

在您的示例中,您正在将所有供应商属性合并到一个文档中。MondoDB不会仅仅通过向一个集合中添加新值来自动为您实现这一点,您知道吗?你必须找到一个唯一的文档,每次都要添加新的属性。哦。。。。我想我的命名法错了。我希望有一个收集表,每个JSON数据都是它自己的文档行,其中包含来自JSON数据的字段。因此,我们将有一个文档/行,其中包含字段a、b、c,另一个文档包含x、y、z等。。。所以,每次我得到一段JSON数据时,我都可以将其转换为一个DBOject,然后向集合中写入一个新文档。。。对吗?这样,我不知道是否需要Spring数据?我可能需要一个DAO层来执行CRUD。