首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在文档中插入文档

在文档中插入文档
EN

Stack Overflow用户
提问于 2012-01-11 20:12:05
回答 1查看 366关注 0票数 0

我正在使用mongodb + java。我尝试将新文档插入到现有文档中。假设我有一个集合"Users":

代码语言:javascript
运行
复制
{"_id" :{"$oid" : "4dc9..."}, "name" :"Klaus", "gender" :"unknown", "adress" :"null"}

现在我想更新这个文档,其中的名称为null Klaus,并将一个新文档添加到关键字adress (其中现在只有“==”)。所以我想要这样的东西:

代码语言:javascript
运行
复制
{"_id" :{"$oid" : "4dc9..."}, "name" :"Klaus", "gender" :"unknown", "adress" :{"country" :"Austria", "city": "..."}}

在Java中怎么做呢?我试过了

代码语言:javascript
运行
复制
//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 )?谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-11 20:23:43

看看你的更新。你甚至没有指定应该有一个“地址”字段。还要注意,这里并不是在文档中“插入”文档。而是将顶级文档的字段设置为嵌入式文档的值。改用下面的代码:

代码语言:javascript
运行
复制
col.update(new BasicDBObject("name", "Klaus"), new BasicDBObject("$set", new BasicDBObject("address", dbObject)));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8819014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档