使用 junit 4 测试 Mongodb3 增、删、改、查
数据库: Mongodb 3.0.2
jar包 : mongo-java-driver-3.0.2.jar
junit-4.10.jar
数据库客户端工具: Robomongo
3.0.2 版本中,使用 MongoCollection<Document> 代替了原来的 DBCollection,
使用 MongoDatabase 代替了原来的 DB
java代码如下:
import org.bson.Document; import org.bson.types.ObjectId; import org.junit.Before; import org.junit.Test; import com.mongodb.BasicDBObject; import com.mongodb.MongoClient; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoCursor; import com.mongodb.client.MongoDatabase; /** * @ClassName: TestMongodb * @deprecated: Mongodb3.0.2方法测试(junit4) * @author * @company * @date 2015-6-1 * @version V1.0 */ public class TestMongodb { private MongoCollection<Document> coll = null; @Before public void setUp() throws Exception { try { MongoClient mongoClient = new MongoClient("10.0.0.117", 27017); // 连接数据库,若没有,则新建 MongoDatabase db = mongoClient.getDatabase("test"); // 连接集合(类似于RDBMS)中的表,若没有,则新建 coll = db.getCollection("testCollection"); } catch (Exception e) { e.printStackTrace(); throw e; } } @Test public void insert() { try { // 老版本 // BasicDBObject doc = new BasicDBObject("name", "MongoDB") // .append("type", "database").append("count", 1) // .append("info", new BasicDBObject("x", 203).append("y", 102)); // coll.insert(doc); /* 3.0.2版本 */ Document doc = new Document(); doc.put("cust_id", "A111"); doc.put("amount", 210); doc.put("status", "C"); coll.insertOne(doc); System.out.println("Insert Success!"); } catch (Exception e) { e.printStackTrace(); } } @Test public void query() { MongoCursor<Document> cursor = null; try { BasicDBObject query = new BasicDBObject("cust_id", "A111"); FindIterable<Document> iter = coll.find(query); cursor = iter.iterator(); System.out.println(cursor.hasNext()); Document doc = null; while (cursor.hasNext()) { doc = cursor.next(); System.out.println(doc.get("cust_id")); System.out.println(doc.toString()); } } catch (Exception e) { e.printStackTrace(); } finally { if (null != cursor) { cursor.close(); } } } @Test public void delete() { // BasicDBObject query = new BasicDBObject("status", "C"); // // coll.deleteMany(query); // 根据主键(_id)删除 BasicDBObject query = new BasicDBObject("_id", new ObjectId( "556d7121d49c6f19e0c76c8e")); coll.deleteOne(query); // 查找集合(表)中所有的文档(行) FindIterable<Document> iterable = coll.find(); MongoCursor<Document> cursor = iterable.iterator(); Document doc = null; while (cursor.hasNext()) { doc = cursor.next(); System.out.println(doc.toString()); } } @Test public void update() { try { // 查找_id=556d7121d49c6f19e0c76c8e的文档(行) BasicDBObject searchQuery = new BasicDBObject().append("_id", new ObjectId("556d7121d49c6f19e0c76c8e")); System.out.println(searchQuery); BasicDBObject newDocument = new BasicDBObject(); // 将其中的Key为cust_id的值改为ABC123 newDocument.append("$set", new BasicDBObject().append("cust_id", "ABC123")); coll.updateOne(searchQuery, newDocument); System.out.println("Update Success!"); } catch (Exception e) { e.printStackTrace(); } } }