源码下载链接:http://git.oschina.net/zhuhongliang/MongoDB2Java
两种不同的连接数据库的方式来操作。
MongoClient mongoClient = new MongoClient( “localhost” , 27017 );
方法1:
DB db = mongoClient.getDB( DBName );
package com.zhl.test; import java.util.ArrayList; import java.util.List; import java.util.Set; import org.bson.Document; 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.MongoClient; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoCursor; import com.mongodb.client.MongoDatabase; import com.mongodb.client.MongoIterable; import com.mongodb.client.model.Filters; public class CRUD { public static void main(String[] args) { CRUD crud = new CRUD(); crud.conn("test"); /*crud.findAll(); crud.insertOne(); crud.findAll(); crud.insertMany(); crud.findAll();*/ // crud.findSome(); crud.findAll(); crud.delete(); crud.findAll(); crud.deleteAll(); crud.findAll(); } MongoClient mongoClient; MongoDatabase db ; public void insertOne(){ //插入文档 /** * 1. 创建文档 org.bson.Document 参数为key-value的格式 * 2. 创建文档集合List * 3. 将文档集合插入数据库集合中 mongoCollection.insertMany(List) 插入单个文档可以用 mongoCollection.insertOne(Document) * */ MongoCollection collection = db.getCollection("test"); Document document = new Document("title", "MongoDB"). append("description", "database"). append("likes", 100). append("by", "Fly"); collection.insertOne(document); System.out.println("新增单个文档成功"); } public void insertMany(){ //插入文档 /** * 1. 创建文档 org.bson.Document 参数为key-value的格式 * 2. 创建文档集合List * 3. 将文档集合插入数据库集合中 mongoCollection.insertMany(List) 插入单个文档可以用 mongoCollection.insertOne(Document) * */ MongoCollection collection = db.getCollection("test"); Document document1 = new Document("title", "MongoDB1"). append("description", "database1"). append("likes", 1001). append("by", "Fly1"); Document document2 = new Document("title", "MongoDB2"). append("description", "database2"). append("likes", 1002). append("by", "Fly2"); Document document3 = new Document("title", "MongoDB3"). append("description", "database3"). append("likes", 1003). append("by", "Fly3"); List documents = new ArrayList(); documents.add(document1); documents.add(document2); documents.add(document3); collection.insertMany(documents); System.out.println("批量文档新增成功"); } //获取所有文档 public void findAll(){ MongoCollection doc = db.getCollection("test"); System.out.println("mycolbbb表数量:"+doc.count()); FindIterable findIterable = doc.find(); MongoCursor mongoCursor = findIterable.iterator(); while(mongoCursor.hasNext()){ System.out.println(mongoCursor.next()); } } //获得所有符合条件的文档 public void findSome(){ MongoCollection doc = db.getCollection("test"); FindIterable t = doc.find( new Document("likes",100)); MongoCursor a = t.iterator(); while(a.hasNext()){ System.out.println(a.next()); } a.close(); } //修改 public void update(){ MongoCollection doc = db.getCollection("test"); doc.updateMany(Filters.eq("likes", 100), new Document("$set",new Document("likes",200))); System.out.println("update:"); } //删除一条符合条件的文档 public void delete(){ //删除符合条件的第一个文档 MongoCollection doc = db.getCollection("test"); doc.deleteOne(Filters.eq("likes", 1001)); } //删除所有符合条件的文档 public void deleteAll(){ //删除所有符合条件的文档 MongoCollection doc = db.getCollection("test"); doc.deleteMany (Filters.eq("likes", 200)); } public void conn(String DBName){ mongoClient = new MongoClient( "localhost" , 27017 ); db = mongoClient.getDatabase(DBName);//访问 “test” 数据库 } }
方法2:
MongoDatabase db = mongoClient.getDatabase(DBName);//访问 数据库
package com.zhl.test; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.DBObject; import com.mongodb.MongoClient; public class CRUD2 { DB db; /* CRUD2(){ String DBName = "test"; this.db = conn(DBName); }*/ public static void main(String[] args) { CRUD2 mongo = new CRUD2(); String DBName = "test"; mongo.db = mongo.conn(DBName); //mongo.findAll("mycolbbb"); BasicDBObject query = new BasicDBObject(); //query = new BasicDBObject(); query.put("title", "MongoDB"); // 20 < i <= 30 new BasicDBObject("$gt", 20).append("$lte", 900000) //query.put("_id", new ObjectId("58ca2a3101ccf929c8fd4d79")); //where likes = 840023 mongo.findOne("mycolbbb", query); //query.put("title","MongoDB"); //mongo.findAll("mycolbbb", query); /*query.put("title","MongoDB"); BasicDBObject res = new BasicDBObject(); res.put("天王盖地虎", "宝塔镇河妖"); BasicDBObject value = new BasicDBObject(); value.put("$set", res); mongo.update("mycolbbb", query, value);*/ //mongo.findAll("mycolbbb"); //BasicDBObject query = new BasicDBObject(); //query = new BasicDBObject(); //query.put("title", "MongoDB"); // 20 < i <= 30 new BasicDBObject("$gt", 20).append("$lte", 900000) //query.put("description", "database3"); //where description = database3 //query.put("_id",new ObjectId("58ca2a3101ccf929c8fd4d79"));//指定id删除 //mongo.deleteAll("mycolbbb", query); //System.out.println("__________________已删除——————————————————————————"); //mongo.findAll("mycolbbb"); /*System.out.println("__________________开始新增——————————————————————————"); for(int i = 0; i<10000; i++){ query = new BasicDBObject("title", "MongoDB"). append("description", "database3"). append("likes", 1003). append("url", "http://www.朱宏亮.com/mongodb3/"). append("by", "朱宏亮.com3"); mongo.insert("mycolbbb", query); }*/ DBCursor cursor = mongo.findAll("mycolbbb"); System.out.println("length:"+cursor.length()+"\t count():"+cursor.count()+"\t itcount():"+cursor.itcount()); } public void insert(String tableName, BasicDBObject query){ DBCollection coll = db.getCollection(tableName); coll.insert(query); } //获取所有文档 public DBCursor findAll(String tableName){ //DB db = conn(); DBCursor cursor; DBCollection coll = db.getCollection(tableName); cursor = coll.find(); System.out.println("数量:"+cursor.count()); /*while(cursor.hasNext()) { System.out.println(cursor.next()); } */ //cursor.close(); return cursor; } //符合条件的第一个 public void findOne(String tableName, BasicDBObject query){ DBObject cursor; DBCollection coll = db.getCollection(tableName); cursor = coll.findOne(query); System.out.println(cursor.toString()); for(String a : cursor.keySet()){ System.out.println(a+"\t"+cursor.get(a)); } } //获得所有符合条件的文档 public void findAll(String tableName, BasicDBObject query){ DBCursor cursor; DBCollection coll = db.getCollection(tableName); cursor = coll.find(query); //System.out.println(cursor.toString()); System.out.println("数量:"+cursor.count()); /*while(cursor.hasNext()) { System.out.println(cursor.next()); } */ cursor.close(); } //修改 public void update(String tableName, BasicDBObject query, BasicDBObject value){ DBCollection coll = db.getCollection(tableName); int num = coll.update(query,value,false,true).getN(); System.out.println("删除:"+num); } //删除一条符合条件的文档 public void delete(String tableName, BasicDBObject query){ DBCollection coll = db.getCollection(tableName); DBObject myDoc = coll.findOne(query); int num = coll.remove(myDoc).getN();//删除 System.out.println("删除:"+num); } //删除所有符合条件的文档 public void deleteAll(String tableName, BasicDBObject query){ DBCollection coll = db.getCollection(tableName); int num = coll.remove(query).getN();//删除 System.out.println("删除:"+num); } public DB conn(String DBName){ MongoClient mongoClient = new MongoClient( "localhost" , 27017 ); DB db = mongoClient.getDB( DBName ); return db; } }