MongDB之各种删除操作
接口IMongDaoDelete:
package com.net.test.mongdb.dao; public interface IMongDaoDelete { public void deleteByName(String name); public void deleteLikeName(String name); public void deleteArrFirst(String name); public void pullDomArray(String name,String key,String value); }
实现类:
package com.net.test.mongdb.dao.imp; import javax.annotation.Resource; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.data.mongodb.core.query.Update.Position;
import org.springframework.stereotype.Repository; import com.net.test.mongdb.dao.IMongDaoDelete;
import com.net.test.mongdb.entity.User; /**
* @author ****
* @Time:2017年8月4日 上午10:34:06
* @version 1.0
* Function: Delete
*/
@Repository
public class MongDaoDeleteImp implements IMongDaoDelete{ @Resource
protected MongoTemplate mongoTemplate; /**
* @description 单条精确删除对象
* @param name
*/
@Override
public void deleteByName(String name)
{
Query query = Query.query(Criteria.where("name").is(name));
mongoTemplate.remove(query, User.class);
} /**
* @description 模糊删除对象,批量
* @param name
*/
@Override
public void deleteLikeName(String name)
{
Query query = Query.query(Criteria.where("name").regex(name));
mongoTemplate.remove(query, User.class);
} /**
*
* @description 删除user元素中hobby属性数组元素的开头或者结尾,根据参数而定
* @param name
*/
@Override
public void deleteArrFirst(String name)
{
Query query = Query.query(Criteria.where("name").is(name)); Update update = new Update();
update.pop("hobby", Position.FIRST);
mongoTemplate.updateFirst(query, update, User.class); update.pop("hobby", Position.LAST);
mongoTemplate.updateFirst(query, update, User.class);
} /**
* @description 根据hobby数组的具体对象值,删除对象的数组数据
* @param name 行数据名称
* @param key 数组键
* @param value 数组值
*/
@Override
public void pullDomArray(String name,String key, String value)
{
Query query = new Query();
query.addCriteria(Criteria.where("name").is(name)); Update update = new Update();
update.pull(key, value); mongoTemplate.updateFirst(query, update, User.class);
} }
MongDB之各种删除操作的更多相关文章
- Entity Framework 6 Recipes 2nd Edition(10-8)译 - >映射插入、修改、删除操作到存储过程
10-8. 映射插入.修改.删除操作到存储过程 问题 想要映射插入.修改.删除操作到存储过程 解决方案 假设已有运动员实体模型,如Figure 10-8所示. 对应的数据库表如Figure 10-9所 ...
- Entity Framework 6 Recipes 2nd Edition(10-10)译 - > 为TPH继承的插入、更新、删除操作映射到存储过程
10-10. 为TPH继承的插入.更新.删除操作映射到存储过程 问题 TPH继承模型,想把它的插入.修改.删除操作映射到存储过程 Solution 假设数据库有一个描述不同种类的产品表(Product ...
- JSON相关知识,转载:删除JSON中数组删除操作
一:JSON是什么 JSONg格式:对象是一个无序的“名称/值”对的集合. 对象以括号开始,括号结束. 名称冒号分隔值. "名称/值"之间用逗号分隔 例: var people = ...
- webform 光棒效果,删除操作弹出确定取消窗口
鼠标移入onmouseover和鼠标移出onmouseout,代码里没大写我这也就不大写了.那首先,我们得获取Class为tr_item里的所有东西,也就是项标签里的数据.然后呢,我们定义一个oldC ...
- UVa 11987 Almost Union-Find(支持删除操作的并查集)
传送门 Description I hope you know the beautiful Union-Find structure. In this problem, you’re to imple ...
- 使用Ajax实现的批量删除操作(C#)
今天做了一个简单的批量删除操作,虽然简单,但是很多问题出现,终究还是技术不够熟练. 现在在这里跟大家分享一下.仅供学习... 1.在前台获取用户点击的信息id,把这里id封装到一个数组里面:(rows ...
- mySql事务_ _Java中怎样实现批量删除操作(Java对数据库进行事务处理)?
本文是记录Java中实现批量删除操作(Java对数据库进行事务处理),在开始之前先来看下面这样的一个页面图: 上面这张图片显示的是从数据库中查询出的出租信息,信息中进行了分页处理,然后每行的前面提 ...
- RCP:导航器视图删除操作快捷键失效的解决方案
导航器视图按下“Delete”的时候,会触发删除节点的操作.如果失效,按以下步骤检查: 1.在要删除的节点上点击右键,确定删除操作是否生效.如果没有生效,则按下列位置 a)检查navigator扩展配 ...
- 数据库的SQL语句创建和主外键删除操作
create table UserType ( Id ,), Name nvarchar() not null ) go create table UserInfo ( Id ,), LoginPwd ...
随机推荐
- vs2017通过snippet代码片断进行标准化注释
我们在进行团队开发时,类的注释已经可以做到自定义了,详细看上篇文章<vs2017通过模块文件添加自定义注释>,而对于方法的注释,我们也需要完善一下,这里我们用到了“代码片断”插件,VS里有 ...
- 安装xenserver过程中出现的问题
运行环境:win10系统,神舟战神z7m-KP7GT型号笔记本,VMWare虚拟机,XenServer7.2.0,XenCenter7.2.0 5月22日下午安装上xenserver虚拟机,发现虚拟机 ...
- NopI 导出数据
protected void exportAward(DataSet dsResult) { if (dsResult != null) { string fileName = System.Web. ...
- KBEngine warring项目源码阅读(三) 实体文件与Account处理
上一篇开始,我们就提到了一个概念,并且进行了初步的运用,这个概念就是实体. KBE中的实体是一个很重要的概念,可以说,有了实体就有了一切. 我们首先接着上一章的内容,来看Account.def对应的实 ...
- springcloud 之 feign的重复性调用 优化
最近有一个springcloud的feign请求,用于获取坐标经纬度的信息,返回结果永远是固定不变的,所以考虑优化一下,不然每次转换几个坐标都要去请求feign,返回的所有坐标信息,数据量太大导致耗时 ...
- 14.JAVA-jar命令使用
介绍 jar命令用来对*.class文件进行压缩,从而生成jar(archive)归档文件,避免文件过多. 定义一个文件: package common.demo ; public class Tes ...
- Unity3D Shader性能排行
整体上,性能由高到低: Unlit,仅为纹理,光线不产生效果 VertexLit Diffuse 漫反射 Normal Mapped 法线贴图 Specular 高光 Normal Mapped Sp ...
- centos开机启动自定义脚本
有些时候我们需要在服务器里设置一个脚本,让他一开机就自己启动.方法如下: cd /etc/init.d vi youshell.sh #将youshell.sh修改为你自己的脚本名 编写自己的脚本后保 ...
- windows添加快速启动栏
步骤: 右击任务栏——选择“新建工具栏” 在“文件夹”路径中填入%appdata%\Microsoft\Internet Explorer\Quick Launch并单点“选择文件夹” 右键单击任务栏 ...
- Java的几种加载驱动的方法
1.Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 2.DriverManager.registerD ...