mongodb java spring_mongoDb +Java+springboot

packagecom.ycmedia.utils;importjava.net.UnknownHostException;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importorg.bson.types.ObjectId;importcom.mongodb.BasicDBObject;importcom.mongodb.DB;importcom.mongodb.DBCollection;importcom.mongodb.DBObject;importcom.mongodb.Mongo;importcom.mongodb.MongoException;

@SuppressWarnings("deprecation")public final classMongoDbUtil {private static final String HOST = "180.97.75.185:38017";private static final String dbName = "yc";private staticMongo mongo;private staticDB db;static{try{

mongo= newMongo(HOST);

db=mongo.getDB(dbName);//db.authenticate(username, passwd)

} catch(UnknownHostException e) {

e.printStackTrace();

}catch(MongoException e) {

e.printStackTrace();

}

}privateMongoDbUtil() {

}/*** 添加操作

*

*@parammap

*@paramcollectionName*/

public static void add(Mapmap, String collectionName) {

DBObject dbObject= newBasicDBObject(map);

getCollection(collectionName).insert(dbObject);

}/*** 添加操作

*

*@paramlist

*@paramcollectionName*/

public static void add(List>list, String collectionName) {for (Mapmap : list) {

add(map, collectionName);

}

}/*** 删除操作

*

*@parammap

*@paramcollectionName*/

public static void delete(Mapmap, String collectionName) {

DBObject dbObject= newBasicDBObject(map);

getCollection(collectionName).remove(dbObject);

}/*** 删除操作,根据主键

*

*@paramid

*@paramcollectionName*/

public static voiddelete(String id, String collectionName) {

Map map = new HashMap();

map.put("_id", newObjectId(id));

delete(map, collectionName);

}/*** 删除全部

*

*@paramcollectionName*/

public static voiddeleteAll(String collectionName) {

getCollection(collectionName).drop();

}/*** 修改操作

* 会用一个新文档替换现有文档,文档key结构会发生改变

* 比如原文档{"_id":"123","name":"zhangsan","age":12}当根据_id修改age

* value为{"age":12}新建的文档name值会没有,结构发生了改变

*

*@paramwhereMap

*@paramvalueMap

*@paramcollectionName*/

public static void update(Map whereMap, MapvalueMap, String collectionName) {

executeUpdate(collectionName, whereMap, valueMap,newUpdateCallback(){publicDBObject doCallback(DBObject valueDBObject) {returnvalueDBObject;

}

});

}/*** 修改操作,使用$set修改器

* 用来指定一个键值,如果键不存在,则自动创建,会更新原来文档, 不会生成新的, 结构不会发生改变

*

*@paramwhereMap

*@paramvalueMap

*@paramcollectionName*/

public static void updateSet(Map whereMap, MapvalueMap, String collectionName) {

executeUpdate(collectionName, whereMap, valueMap,newUpdateCallback(){publicDBObject doCallback(DBObject valueDBObject) {return new BasicDBObject("$set", valueDBObject);

}

});

}/*** 修改操作,使用$inc修改器

* 修改器键的值必须为数字

* 如果键存在增加或减少键的值, 如果不存在创建键

*

*@paramwhereMap

*@paramvalueMap

*@paramcollectionName*/

public static void updateInc(Map whereMap, MapvalueMap, String collectionName) {

executeUpdate(collectionName, whereMap, valueMap,newUpdateCallback(){publicDBObject doCallback(DBObject valueDBObject) {return new BasicDBObject("$inc", valueDBObject);

}

});

}/*** 修改

*

*@paramcollectionName

*@paramwhereMap

*@paramvalueMap

*@paramupdateCallback*/

private static voidexecuteUpdate(String collectionName, Map whereMap, Map valueMap, UpdateCallback updateCallback) {

DBObject whereDBObject= newBasicDBObject(whereMap);

DBObject valueDBObject= newBasicDBObject(valueMap);

valueDBObject=updateCallback.doCallback(valueDBObject);

getCollection(collectionName).update(whereDBObject, valueDBObject);

}interfaceUpdateCallback {

DBObject doCallback(DBObject valueDBObject);

}/*** 获取集合(表)

*

*@paramcollectionName

*@return

*/

public staticDBCollection getCollection(String collectionName) {returndb.getCollection(collectionName);

}public static voidmain(String[] args) {

DBCollection collection= getCollection("url");

BasicDBObject queryObject= new BasicDBObject("urlMd5","bfa89e563d9509fbc5c6503dd50faf2e");

DBObject obj=collection.findOne(queryObject);

System.out.println(obj);

}

}


版权声明:本文为weixin_42521450原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。