MongoDB――Java操作(增删改查)(二)

2014-11-24 07:29:10 · 作者: · 浏览: 1
BObject query = new BasicDBObject();
query.put("name", "jack");
DBCursor it = coll.find(query);
showData(it);

System.out.println("=======================");

//查询age小于30,age不等于20的对象
BasicDBObject query2 = new BasicDBObject();
query2.put("age", new BasicDBObject("$lt", 30));
query2.put("age", new BasicDBObject("$ne", 20));
DBCursor it2 = coll.find(query2);
showData(it2);
}

/**
* 修改数据
*/
public void updateData(){
BasicDBObject query = new BasicDBObject();
query.put("name", "lucy");
//这里的new_info对象一定要是find出的而不是new的,否则多字段的情况下就会丢失其它字段信息
DBObject new_info = coll.findOne(query);

//方法一(缺点,必须把2个值都put进去)
BasicDBObject sight = new BasicDBObject();
sight.put("left", 1.3);
sight.put("right", 1.3);
new_info.put("sight", sight);

//方法二(优点,只需设置要修改的字段的值)
DBObject obj = (DBObject)new_info.get("sight");
obj.put("right", 1.5);

coll.update(query, new_info);
}

/**
* 删除数据
*/
public void deleteData(){
BasicDBObject data = new BasicDBObject();
//删除名称为lucy的记录
data.put("name", "lucy");
//传入[空实例]删除所有
coll.remove(data);
}

/**
* 遍历显示结果
* @param result
*/
@SuppressWarnings("rawtypes")
public void showData(Iterable result){
Iterator it = result.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
}


摘自 晨曦之光