前一篇博文介绍了不用修改器关键字执行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操作