Java MongoDB-合并两个DBObject

Java MongoDB-合并两个DBObject,java,mongodb,dbobject,Java,Mongodb,Dbobject,我正在编写一个模型工厂,为此我使用JSON加载一个MongoDB对象,如下所示: import com.mongodb.util.JSON; DBObject dbObject = (DBObject) JSON.parse("{'name':'jack', 'age':30}"); 现在,我正在尝试分解我的JSON文件,这样我就可以用一个JSON文件加载一个DBObject,如果需要,我可以用另一个JSON文件扩充DBObject 尽管听起来很奇怪,但是想象一下有一组不同类型的用户。比如Ba

我正在编写一个模型工厂,为此我使用JSON加载一个MongoDB对象,如下所示:

import com.mongodb.util.JSON;
DBObject dbObject = (DBObject) JSON.parse("{'name':'jack', 'age':30}");
现在,我正在尝试分解我的JSON文件,这样我就可以用一个JSON文件加载一个DBObject,如果需要,我可以用另一个JSON文件扩充DBObject

尽管听起来很奇怪,但是想象一下有一组不同类型的用户。比如BasicUser、AdvancedUser等。我可以用一个JSON文件来加载BasicUser,并将AdvancedUser的其他非重叠细节放在另一个JSON文件中。我可以让AdvancedUser扩展BasicUser,这样我就可以组合两个JSON文件的内容来创建AdvancedUser模型


我如何实现这样的功能?

我决定推出自己的函数,通过递归遍历一个DBObject并将内容传输到另一个DBObject来实现这一点。

我决定推出自己的函数,通过递归遍历一个DBObject并将内容传输到另一个DBObject来实现这一点。

我相信putAll就是这样做的你想要的

DBObject obj1 = (DBObject) JSON.parse("{'name':'jack', 'age':30}");
DBObject obj2 = (DBObject) JSON.parse("{'role':'admin'}");
obj1.putAll(obj2);
System.out.println(obj1.toString()); //{ "name" : "jack" , "age" : 30 , "role" : "admin"}

我相信这一切都是你想要的

DBObject obj1 = (DBObject) JSON.parse("{'name':'jack', 'age':30}");
DBObject obj2 = (DBObject) JSON.parse("{'role':'admin'}");
obj1.putAll(obj2);
System.out.println(obj1.toString()); //{ "name" : "jack" , "age" : 30 , "role" : "admin"}

你好@jeffreyveon,你能提供你的代码吗,因为putAll正在替换文档而不是Merging我恐怕已经很久了,我无法再访问我所做的事情了。你好@jeffreyveon,你能提供你的代码吗,因为putAll正在替换文档而不是Merging我恐怕已经很久了,我无法再访问我所做的事情了。