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