mongodb初體驗

最近關注大數據,天然會關注到nosql數據庫,其中固然是mongodb。java

nosql數據庫大可能是k,v數據庫,這也不是新鮮的名詞了,berkerly DB已經存在不少年了,如今屬於oracle。sql

具體k,v數據庫爲什麼比傳統數據庫優載的原理,還須要深刻了解和學習。同時二者應該是各有存在的空間。mongodb

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 }

測試代碼以下:json

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更適合網絡傳輸。網絡

相關文章
相關標籤/搜索