2011-10-10 92 views
1

我寫一個模範工廠,爲此我使用JSON加載了一個MongoDB的DBOBJECT這樣的:的MongoDB - 合併兩個DBObjects

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模型。

我怎麼能實現這樣的事情?

回答

0

我決定推出我自己的函數,通過遞歸遍歷一個DBObject並將內容傳遞給另一個。

+0

@jeffreyveon嗨,你能不能請提供你的代碼,因爲是的putAll替換文檔而不是合併 –

+0

的恐怕是過了這麼久,我沒有訪問我做什麼了。 – jeffreyveon

5

我相信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"}