spring data为我们提供了操作mongodb的jar包,org.springframework.data.mongodb.core.MongoTemplate,这与spring对其它数据库提供的操作类名称相似。下面简单说下多数据的更新操作,以或(or)为例:
/**
*将primaryId或id等于传id的文档的name字段更新为王羊羊
**/
public boolean edit(String id){
BasicDBList basicDBList = new BasicDBList();
//在集合中放入两个BasicDBOBject对象,实际上就是两个查询条件
//形如(假设传入的id的值为abc):[{"primaryId","abc"},{"id","abc"}]
basicDBList.add(new BasicDBObject("primaryId",id));
basicDBList.add(new BasicDBObject("id",id));
BasicDBObject basicDBObject = new BasicDBObject();
//封装查询条件,形如
//{"$or":[{"primaryId","abc"},{"id","abc"}]}
basicDBObject.put("$or",basicDBList);
//放入Query对象,做为更新的条件
Query query = new BasicQuery(basicDBObject.toJson());
//更新内容
//形如:{"$set":{"name":"王羊羊"}}
Update update = new Update();
update.set("name","王羊羊");
UpdateResult updateMulti = mongoTemplate.updateMulti(query,update,数据库对象的实体类.class);
long count = updateMulti.getModifiedCount();
if(count>0){
return true;
}
return false;
}
大致原理其实就是封装成mongodb的curd操作语句,与在可视化工具中的操作是类似的。关于java对于mongodb的其它操作,会在后续更新。