首页 > 代码库 > mongodb初体验

mongodb初体验

最近关注大数据,自然会关注到nosql数据库,其中当然是mongodb。

nosql数据库大多是k,v数据库,这也不是新鲜的名词了,berkerly DB已经存在很多年了,现在属于oracle。

具体k,v数据库为何比传统数据库优载的原理,还需要深入了解和学习。同时两者应该是各有存在的空间。

mongodb的使用非常简单,简单包装一下类如下:

 1 package DBHelper; 2  3 import com.mongodb.*; 4 import com.mongodb.util.JSON; 5  6 import java.net.UnknownHostException; 7 import java.util.List; 8  9 /**10  * Created by Weijiabin on 2014/10/29.11  */12 public class MongoDB {13 14     public MongoDB() throws UnknownHostException {15         _mongo = new Mongo();16     }17     private Mongo _mongo;18     public DB getDb(String strDbName){19         return _mongo.getDB(strDbName);20     }21 22     public DBCollection getDbCollection(String strStrDbName, String strTableName){23         return getDb(strStrDbName).getCollection(strTableName);24     }25 26     public void add(String strDbName,String strTableName, DBObject obj){27         getDbCollection(strDbName,strTableName).save(obj);28     }29 30     public void addList(String strDbName,String strTableName, List<DBObject> objList){31         getDbCollection(strDbName,strTableName).insert(objList);32     }33 34     public int remove(String strDbName,String strTableName,DBObject obj){35         return getDbCollection(strDbName,strTableName).remove(obj).getN();36     }37 38     public int modify(String strDbName,String strTableName,DBObject objQ,DBObject objN,boolean bUpdateAll){39         return getDbCollection(strDbName,strTableName).update(objQ,objN,true,bUpdateAll).getN();40     }41 42     public DBObject query(String strDbName,String strTableName,DBObject objQ){43         return getDbCollection(strDbName,strTableName).findOne(objQ);44     }45 46 47     48 }

测试代码如下:

package DBHelper;import com.mongodb.BasicDBObject;import com.mongodb.DBObject;import org.junit.Test;import static org.junit.Assert.*;public class MongoDBTest {    @Test    public void testGetDb() throws Exception {        MongoDB db = new MongoDB();        BasicDBObject obj = new BasicDBObject();        obj.put("name","weijiabin");        obj.put("sex","man");        obj.put("age",32);        db.add("db1","users",obj);        BasicDBObject objQ = new BasicDBObject("age",32);        DBObject objR = db.query("db1", "users", objQ);        assertEquals("weijiabin",objR.get("name"));    }}

看得出来,相当的简单和易用。直接操作json数据结构,有xml的优点,同时比xml更适合网络传输。

mongodb初体验