0
使用mongodb + java的Im。我試圖將新文檔插入到現有文檔中。可以說,我有一個集合「用戶」:在文檔中插入文檔
{"_id" :{"$oid" : "4dc9..."}, "name" :"Klaus", "gender" :"unknown", "adress" :"null"}
現在我想更新該文件其中名稱==克勞斯和添加新文檔到關鍵adress
(哪來現在只有「空」)。所以我想這樣的事情:
{"_id" :{"$oid" : "4dc9..."}, "name" :"Klaus", "gender" :"unknown", "adress" :{"country" :"Austria", "city": "..."}}
如何在Java中做到這一點?我試過
//DBCollection col "Users"
String json = "{'country': '" + user.country + "', 'city': '" + user.city + "'}";
DBObject dbObject = (DBObject)JSON.parse(json);
col.update(new BasicDBObject().append("name", "Klaus"), dbObject); //not working
我沒有得到任何errormessage,新文件就是不存在。我的JSON有問題嗎?或者我需要另一個「更新」功能,也許替換(替換adress:null
與)?謝謝你的幫助!
啊感謝您的快速回答它的工作。起初,我不想在更新中使用關鍵「地址」,因爲它已經存在於文檔中 - 但現在已經清楚了。我只是遇到了一些「$ set」的問題,我在一些教程中看到,總是有一種方法可以在沒有「$ set」的情況下進行更新,但也許我錯了。 – OverStack 2012-01-11 12:55:33
那些教程是撒謊的;)索賠成立的唯一方式是,如果每次更新整個文檔時覆蓋整個文檔,效率較低且通常被破壞。儘可能使用$ set。 – 2012-01-11 12:56:58