MongoDB Java經常使用操做

請先下載下列jar包:java

mongo-java-driver-*.jar,junit*.jar,gson-*.jarmongodb

import java.net.UnknownHostException;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

import com.google.gson.Gson;
import com.mongodb.BasicDBObject;
import com.mongodb.Bytes;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
import com.mongodb.util.JSON;

public class Test {
    @org.junit.Test
    public void testCRUD() throws UnknownHostException, MongoException {
        //建立數據庫鏈接
        Mongo mongo = new Mongo("localhost", 27017);
        for (String dbname : mongo.getDatabaseNames()) {
            System.out.println("dbname==" + dbname);
        }
        //打開DB
        DB db = mongo.getDB("mongodbtest");
        //遍歷全部集合名字
        Set<String> colls = db.getCollectionNames();
        for (String string : colls) {
            System.out.println(string);
            //先刪除全部collection
            if (!string.equals("system.indexes")) {
                db.getCollection(string).drop();
            }
        }
        //取得集合emp(若:emp不存在,mongodb將自動建立該集合)
        DBCollection coll = db.getCollection("emp");
        //delete all
        DBCursor dbCursor = coll.find().addOption(Bytes.QUERYOPTION_NOTIMEOUT);//設置不超時
        for (DBObject dbObject : dbCursor) {
            coll.remove(dbObject);
        }
        //create
        BasicDBObject doc = new BasicDBObject("name", "test").append("sex", "test").append(
            "address",
            new BasicDBObject("postcode", "aaaa").append("street", "test")
                .append("city", "test2"));
        coll.insert(doc);
        //retrieve
        BasicDBObject docFind = new BasicDBObject("name", "test");
        DBObject finResult = (DBObject) coll.findOne(docFind);
        System.out.println(finResult);
        //update
        doc.put("sex", "MALE");
        coll.update(finResult, doc);
        finResult = coll.findOne(docFind);
        System.out.println(finResult);
        //刪除全部index
        coll.dropIndexes();
        //建立index
        coll.createIndex(new BasicDBObject("name", 1));//1表明升序

        //複雜對象
        UserData userData = new UserData("jimmy", "123456");
        Set<String> pets = new HashSet<String>();
        pets.add("cat");
        pets.add("dog");
        Map<String, String> favoriteMovies = new HashMap<String, String>();
        favoriteMovies.put("dragons", "Dragons II");
        favoriteMovies.put("avator", "Avator I");
        userData.setFavoriteMovies(favoriteMovies);
        userData.setPets(pets);
        userData.setBirthday(getDate(1990, 5, 1));
        BasicDBObject objUser = new BasicDBObject("key", "jimmy").append("value",
            toDBObject(userData));
        coll.insert(objUser);
        System.out.println(coll.findOne(objUser));

        mongo.close();
        mongo = null;
        db = null;
        coll = null;
        doc = null;
        dbCursor = null;
        System.gc();
    }

    private DBObject toDBObject(Object obj) {
        Gson gson = new Gson();
        String json = gson.toJson(obj);
        return (DBObject) JSON.parse(json);
    }

    private Date getDate(int year, int month, int day) {
        Calendar calendar = Calendar.getInstance();
        calendar.clear();
        calendar.set(year, month - 1, day);
        return calendar.getTime();

    }
}
public class UserData implements Serializable {
    private static final long   serialVersionUID = -1458264368996911555L;
    private String              userName;
    private String              password;
    private Set<String>         pets;
    private Map<String, String> favoriteMovies;
    private Date                birthday;

    public UserData(String userName, String passWord) {
        this.userName = userName;
        this.password = passWord;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Set<String> getPets() {
        return pets;
    }

    public void setPets(Set<String> pets) {
        this.pets = pets;
    }

    public Map<String, String> getFavoriteMovies() {
        return favoriteMovies;
    }

    public void setFavoriteMovies(Map<String, String> favoriteMovies) {
        this.favoriteMovies = favoriteMovies;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

}
emp
system.indexes
{ "_id" : { "$oid" : "56696b6e40ad7fee67b4343b"} , "name" : "test" , "sex" : "test" , "address" : { "postcode" : "aaaa" , "street" : "test" , "city" : "test2"}}
{ "_id" : { "$oid" : "56696b6e40ad7fee67b4343b"} , "name" : "test" , "sex" : "MALE" , "address" : { "postcode" : "aaaa" , "street" : "test" , "city" : "test2"}}
{ "_id" : { "$oid" : "56696b6e40ad7fee67b4343c"} , "key" : "jimmy" , "value" : { "userName" : "jimmy" , "password" : "123456" , "pets" : [ "cat" , "dog"] , "favoriteMovies" : { "dragons" : "Dragons II" , "avator" : "Avator I"} , "birthday" : "May 1, 1990 12:00:00 AM"}}
相關文章
相關標籤/搜索