Java操作MongoDB,下面是一个完整的例子。本实例需导入mongo-2.5.3.jar
Java代码
import java.net.UnknownHostException;
import java.util.Iterator;
import java.util.Set;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
public class MongoMain {
static DB db = null;
static DBCollection coll = null;
static {
Mongo m = null;
try {
//m = new Mongo();//默认本地
//m = new Mongo("127.0.0.1");//默认端口
m = new Mongo("127.0.0.1",27017);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (MongoException e) {
e.printStackTrace();
}
//获取名为 test 的数据库,不存在的情况下创建
db = m.getDB("test");
//登录数据库(用户名:test,密码:test)
boolean auth = db.authenticate("test", "test".toCharArray());
if(auth){
//只有admin中的用户才有此权限(show dbs)
//获取所有数据库,不显示无collection的db
//System.out.println("所有数据库名:"+m.getDatabaseNames());
//获取名为 user 的collection(相当于表),不存在的情况下创建
coll = db.getCollection("user");
}else{
System.out.println("登录失败!");
}
}
public static void main(String[] args) {
MongoMain test = new MongoMain();
if(coll!=null){
test.saveData();
test.searchData();
test.updateData();
test.deleteData();
}
}
/**
*/
public void saveData(){
//录入学生1的信息
BasicDBObject stu1 = new BasicDBObject();
stu1.put("name", "jack");
stu1.put("age", "25");
BasicDBObject sight1 = new BasicDBObject();
sight1.put("left", 1.5);
sight1.put("right", 1.2);
stu1.put("sight", sight1);
//录入学生2的信息
BasicDBObject stu2 = new BasicDBObject();
stu2.put("name", "lucy");
stu2.put("age", "22");
BasicDBObject sight2 = new BasicDBObject();
sight2.put("left", 1.0);
sight2.put("right", 1.3);
stu2.put("sight", sight2);
//注意:不能直接对sight赋值{left:1.0,right:1.3}
coll.insert(stu1);
coll.insert(stu2);
}
/**
* 查询数据
*/
public void searchData(){
System.out.println("=======================");
//show collections
//获取数据库下所有的collection,不显示无数据的collection
Set
showData(colls);
System.out.println("=======================");
//查询coll中全部记录
DBCursor ite = coll.find();
showData(ite);
System.out.println("=======================");
//获取第一条记录
DBObject o = coll.findOne();
System.out.println(o);
System.out.println("=======================");
//统计colletion的数据条数
System.out.println(coll.getCount());
System.out.println("=======================");
//查询 name为jack的对象www.2cto.com
BasicD