我正在使用mongodb + java。我尝试将新文档插入到现有文档中。假设我有一个集合"Users":
{"_id" :{"$oid" : "4dc9..."}, "name" :"Klaus", "gender" :"unknown", "adress" :"null"}现在我想更新这个文档,其中的名称为null Klaus,并将一个新文档添加到关键字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我没有收到任何错误消息,新文档就是不在那里。我的json有什么问题吗?或者我需要另一个“更新”功能,也许是一个替换(用adress:new document替换adress:null )?谢谢你的帮助!
发布于 2012-01-11 20:23:43
看看你的更新。你甚至没有指定应该有一个“地址”字段。还要注意,这里并不是在文档中“插入”文档。而是将顶级文档的字段设置为嵌入式文档的值。改用下面的代码:
col.update(new BasicDBObject("name", "Klaus"), new BasicDBObject("$set", new BasicDBObject("address", dbObject)));https://stackoverflow.com/questions/8819014
复制相似问题