MongoDB- Java API 增删改操作
- 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);
- }
- }
Oracle RAC配置ssh用户等价MySQL Cluster集群探索与实践相关资讯 MongoDB教程
- MongoDB 入门指南、示例 (07/09/2013 08:38:34)
- VMWare的Cloud Foundry实践(二) (12/10/2012 13:48:40)
- Linux 下 限制 MongoDB 内存占用 (10/22/2012 17:10:01)
| - MongoDB入门必读(概念与实战并重) (07/09/2013 08:30:02)
- MongoDB 可读性比较差的语句 (12/10/2012 13:43:47)
- MongoDB使用手册 PPT (09/06/2012 20:51:26)
|
本文评论 查看全部评论 (0)