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

来源:互联网 发布:单零点补偿网络 编辑:程序博客网 时间:2024/06/04 19:12

前一篇博文介绍了不用修改器关键字执行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关键字的情况--》它表示在查询出的文档中添加keycollection.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关键字的情况--》它表示在查询出的文档中删除指定的keycollection.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
原创粉丝点击