java环境下:MongoDB的crud操作之Update (二)

前一篇博文介绍了不用修改器关键字执行update语句,下面将介绍使用修改器关键字的情况:

操作之前,数据库的数据如下:



一、使用$set关键字:

public static void testUpdate2(){
	String ip = "192.168.2.3";
	int port = 27017;
	String[] citys = {"beijing","tianjing","wuhan"};
	MongoClient client = MongoDBUtil.getClient(ip, port);
	DB db = client.getDB("zhanglong_test");
	DBCollection collection = db.getCollection("students");
	BasicDBObject query = new BasicDBObject("name", "lucy");
	
	//使用$set关键字的情况--》它表示在查询出的文档中添加key
	collection.update(query, new BasicDBObject().append("$set", new BasicDBObject("sex","female")));
    }

执行上面的函数,会将name为lucy的文档,添加一个key为sex   value为female



二、使用$unset关键字:


它的使用方法比较简单: { $unset : { “key":1 }}

 public static void testUpdate3(){
	String ip = "192.168.2.3";
	int port = 27017;
	String[] citys = {"beijing","tianjing","wuhan"};
	MongoClient client = MongoDBUtil.getClient(ip, port);
	DB db = client.getDB("zhanglong_test");
	DBCollection collection = db.getCollection("students");
	BasicDBObject query = new BasicDBObject("name", "lucy");
	
	//使用$unset关键字的情况--》它表示在查询出的文档中删除指定的key
	collection.update(query, new BasicDBObject().append("$unset",new BasicDBObject("sex",1)));
    }

注意:将sex表示要删除的key,如果要删除,应该讲value设置为1

删除后的数据库如下:



可以看到name为lucy的文档,key为sex已经被删除了


三、使用$inc关键字:

只是使用与数字类型,他可以为指定的键对应的数字类型的数值进行加减操作.

 public static void testUpdate4(){
	String ip = "192.168.2.3";
	int port = 27017;
	String[] citys = {"beijing","tianjing","wuhan"};
	MongoClient client = MongoDBUtil.getClient(ip, port);
	DB db = client.getDB("zhanglong_test");
	DBCollection collection = db.getCollection("students");
	BasicDBObject query = new BasicDBObject("name", "jacky");
	
	//使用$inc关键字(inc是increment的缩写)的情况--》它表示在查询出的文档中将指定的key的value值添加指定的值,可以为负数
	collection.update(query, new BasicDBObject().append("$inc",new BasicDBObject("age",5)));
    }

执行上面的函数,将name为jacky的文档 age增加5


注意:①只能操作数字类型的值,②可以增加,也可以减少。正数表示添加,负数表示减少。

下一篇blog将继续介绍  $push $pushAll $addToSet等关键字执行update操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值