MongoOperations删除内嵌数组元素

来源:互联网 发布:知乎封号解封 编辑:程序博客网 时间:2024/06/06 05:47
之前因为项目缓存数据改造的缘故,接触并学习mongodb。直接在项目中用的spring整合的mongodb,一般的增删查改操作都是在网上找的dmeo,并没有去看Mongodb的官方文档。也就没有学习mongodb基础的shell操作,渐渐地发现自己遇到各种麻烦了。所以又去mongodb官网将shell操作仔细看了,因为在后面会提到。官方文档地址:[官方文档地址](http://docs.mongoing.com/manual-zh/tutorial/remove-documents.html)今天遇到一个删除的问题,一直没有百度到答案,后来自己参考其他的例子,琢磨好一会终于搞定了。一起看下:数据结构如下图:![文档数据结构](http://img.blog.csdn.net/20170525163005247?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWl3dXhpYTIz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)这里我需要删除phase数组中_id为11204的整条记录。代码如下
//先定义查询条件 定位到那条记录Query query = Query.query(Criteria.where("_id").is(deptId));//定义一个document,目的是构造一个文档对象        Document document=new Document("_id",phaseId);        Update update=new Update();        //spring-data的API中对此方法没有什么详细的说明,只知道两个参数一个是key,一个是value,别的就不知道拉。得自己去琢磨。因为查看别人给的shell删除数据元素的是用的 { $pull: { links: { name: 'Baidu' } } },所有就构造一个documnet尝试下,没想到还真是的。        update.pull("phases",document);        mongoOps.updateFirst(query,update,tableName);
原创粉丝点击