您的位置:首页 > 数据库 > Mongodb

MongoDB Java常用操作

2015-12-10 00:00 288 查看
请先下载下列jar包:

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

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"}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: