package com.x.mongodb;
import java.net.UnknownHostException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.bson.types.ObjectId;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
public final class MongoDBUtil {
private static final String HOST = "127.0.0.1";
private static final String dbName = "test";
private static Mongo mongo;
private static DB db;
static {
try {
mongo = new Mongo(HOST);
db = mongo.getDB(dbName);
// db.authenticate(username, passwd)
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (MongoException e) {
e.printStackTrace();
}
}
private MongoDBUtil() {
}
/**
* 添加操作
* <br>------------------------------<br>
* @param map
* @param collectionName
*/
public static void add(Map<String, Object> map, String collectionName) {
DBObject dbObject = new BasicDBObject(map);
getCollection(collectionName).insert(dbObject);
}
/**
* 添加操作
* <br>------------------------------<br>
* @param list
* @param collectionName
*/
public static void add(List<Map<String, Object>> list, String collectionName) {
for (Map<String, Object> map : list) {
add(map, collectionName);
}
}
/**
* 删除操作
* <br>------------------------------<br>
* @param map
* @param collectionName
*/
public static void delete(Map<String, Object> map, String collectionName) {
DBObject dbObject = new BasicDBObject(map);
getCollection(collectionName).remove(dbObject);
}
/**
* 删除操作,根据主键
* <br>------------------------------<br>
* @param id
* @param collectionName
*/
public static void delete(String id, String collectionName) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("_id", new ObjectId(id));
delete(map, collectionName);
}
/**
* 删除全部
* <br>------------------------------<br>
* @param collectionName
*/
public static void deleteAll(String collectionName) {
getCollection(collectionName).drop();
}
/**
* 修改操作</br>
* 会用一个新文档替换现有文档,文档key结构会发生改变</br>
* 比如原文档{"_id":"123","name":"zhangsan","age":12}当根据_id修改age
* value为{"age":12}新建的文档name值会没有,结构发生了改变
* <br>------------------------------<br>
* @param whereMap
* @param valueMap
* @param collectionName
*/
public static void update(Map<String, Object> whereMap, Map<String, Object> valueMap, String collectionName) {
executeUpdate(collectionName, whereMap, valueMap, new UpdateCallback(){
public DBObject doCallback(DBObject valueDBObject) {
return valueDBObject;
}
});
}
/**
* 修改操作,使用$set修改器</br>
* 用来指定一个键值,如果键不存在,则自动创建,会更新原来文档, 不会生成新的, 结构不会发生改变
* <br>------------------------------<br>
* @param whereMap
* @param valueMap
* @param collectionName
*/
public static void updateSet(Map<String, Object> whereMap, Map<String, Object> valueMap, String collectionName) {
executeUpdate(collectionName, whereMap, valueMap, new UpdateCallback(){
public DBObject doCallback(DBObject valueDBObject) {
return new BasicDBObject("$set", valueDBObject);
}
});
}
/**
* 修改操作,使用$inc修改器</br>
* 修改器键的值必须为数字</br>
* 如果键存在增加或减少键的值, 如果不存在创建键
* <br>------------------------------<br>
* @param whereMap
* @param valueMap
* @param collectionName
*/
public static void updateInc(Map<String, Object> whereMap, Map<String, Integer> valueMap, String collectionName) {
executeUpdate(collectionName, whereMap, valueMap, new UpdateCallback(){
public DBObject doCallback(DBObject valueDBObject) {
return new BasicDBObject("$inc", valueDBObject);
}
});
}
/**
* 修改
* <br>------------------------------<br>
* @param collectionName
* @param whereMap
* @param valueMap
* @param updateCallback
*/
private static void executeUpdate(String collectionName, Map whereMap, Map valueMap, UpdateCallback updateCallback) {
DBObject whereDBObject = new BasicDBObject(whereMap);
DBObject valueDBObject = new BasicDBObject(valueMap);
valueDBObject = updateCallback.doCallback(valueDBObject);
getCollection(collectionName).update(whereDBObject, valueDBObject);
}
interface UpdateCallback {
DBObject doCallback(DBObject valueDBObject);
}
/**
* 获取集合(表)
* <br>------------------------------<br>
* @param collectionName
* @return
*/
public static DBCollection getCollection(String collectionName) {
return db.getCollection(collectionName);
}
}
分享到:
相关推荐
mongodb-java-driver-4.4.0.jar
包含翻译后的API文档:mongodb-driver-core-4.2.3-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.mongodb:mongodb-driver-core:4.2.3; 标签:mongodb、driver、core、中文文档、jar包、java; 使用方法:解压...
亲测可用,解压包含三个jar包,引用时sources和doc包根据需要添加。 mongo-java-driver-3.5.0.jar; mongo-java-driver-3.5.0-javadoc.jar; mongo-java-driver-3.5.0-sources.jar;
包含翻译后的API文档:mongodb-driver-sync-4.2.3-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.mongodb:mongodb-driver-sync:4.2.3; 标签:mongodb、driver、sync、中文文档、jar包、java; 使用方法:解压...
包含翻译后的API文档:mongodb-driver-sync-4.2.3-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.mongodb:mongodb-driver-sync:4.2.3; 标签:mongodb、driver、sync、中英对照文档、jar包、java; ...
包含翻译后的API文档:mongodb-driver-core-4.2.3-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.mongodb:mongodb-driver-core:4.2.3; 标签:mongodb、driver、core、中英对照文档、jar包、java; ...
mongodb-windows安装包: mongodb-compass-1.31.2-win32-x64.msi 打开直接安装
java和mongodb连接,需要mongodb-driver,您还必须下载其依赖项: bson和 mongodb-driver-core》》3个包: mongodb-driver-3.8.2.jar; bson-3.8.2.jar; mongodb-driver-core-3.8.2.jar
此文档专门针对于使用Java语言操作MongoDB数据库的开发人员。
mongoDB-CURD操作-----JAVA 对初学入门还是有点用处滴!
自己在官网上下载的 mongodb关于java的api,便于离线学习。 打开文件夹 找到index.html打开就行了,可以创建一个快捷方式方便浏览。
使用java 操作mongoDB必须的jar包,
mongodb-async-driver-2.0.1 jar包
入门-后端教程弹簧启动-MONGO DB-REST API这些是我们需要提供的API: 方法Urls Actions POST / api / tutorials创建新Tutorial GET / api / tutorials检索所有Tutorial GET / api / tutorials /:id通过:id PUT / ...
mongo_java_driver_2.9.3_API_Jasun.chm mongodb.chm及网页版 mongo-java-driver-3.6.3.jar Spring Data MongoDB API1.8.1.chm spring-data-mongodb-reference.pdf .......................
mongodb-driver-core-3.4.3,mongodb java开发常用组件。
mongodb-linux-x86_64-rhel62-4.0.0.tgz
MongoDB window 安装包,mongodb-windows-x86_64-4.4.0-signed.msi,免除下载速度慢的烦恼!
亲测可用。mongodb-java驱动(3个jar包,mongodb-driver-core-3.0.1.jar,bson-3.0.1.jar,mongodb-driver-3.0.0.jar)
mongodb-java基础.pdf