package TestDemo0; import java.net.UnknownHostException; 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; /** * * 查询指定数据库指定DBCollection集合中的所有数据 * * @author zhipeng * * */ public class DBTest { public static void main(String[] args) throws UnknownHostException, MongoException { /** * Mongo实例代表了一个数据库连接池 Mongo mg = new Mongo("localhost"); * Mongo mg = new Mongo("localhost", 27017); */ //Mongo mg = new Mongo(); Mongo mg = new Mongo("localhost", 27017);//获得数据库连接 //getAddress()获取IP和端口 System.out.println(mg.getAddress()); //列出所有数据库 System.out.println(mg.getDatabaseNames()); //删除数据库 //mg.dropDatabase("aaa"); // 获取名为“test”的数据库对象 DB db = mg.getDB("test"); //添加用户 db.addUser("chen", "123".toCharArray(),true);//true代表只读权限,false:读写权限 //删除用户 db.removeUser("chen"); boolean auth = db.authenticate("admin", "ibm".toCharArray()); System.out.println("auth=" + auth); // 查询该库中所有的集合 (相当于表) for (String name : db.getCollectionNames()) { System.out.println("Collection Name: " + name); } //判断Subject是否存在 System.out.println(db.collectionExists("Subject")); //新建一个普通的collection--noCapped DBObject opt00=new BasicDBObject().append("capped", false); db.createCollection("noCapped", opt00); //新建一个Capped collection--yesCapped,最大记录数是2 DBObject opt01=new BasicDBObject().append("capped", true).append("max", 2); db.createCollection("yesCapped", opt01); //声明一个Collecion对象 DBCollection users = db.getCollection("Subject"); //判断Subject表是不是Capped Collection System.out.println(users.isCapped()); //将表Subject修改为newSubject //users.rename("newSubject"); //计算document数量 BasicDBObject doc00=new BasicDBObject(); doc00.put("age", 20); //获取document总数量的方式 System.out.println(users.count()); //获取document总数量的方式(按查询条件) System.out.println(users.count(doc00)); //删除Subject表 //users.drop(); // // /* // * update // */ // //定义一个查询对象,相当于SQL中的where // DBObject updateCondition=new BasicDBObject(); // updateCondition.put("name", "MongoDB"); // // //定义一个更新对象,相当于SQL中的set // DBObject updatedValue=new BasicDBObject(); // updatedValue.put("type", "NoSqla"); // // DBObject updateSetValue=new BasicDBObject("$set",updatedValue); // //将查询对象和更新对象作为参数传给update来完成更新 // //users.update(updateCondition, updateSetValue); // // users.update(updateCondition, updateSetValue,false,true); // //false:代表若没有这条记录,不插入 // //true:代表若有多条记录,全部更新 /* * insert */ // //声明一个document对象,用于存储数据 // BasicDBObject doc=new BasicDBObject(); // doc.put("name", "MongoDB"); // doc.put("type", "database"); // doc.put("count", 1); // ////声明一个document对象,用于存储数据,并将info作为它的嵌入式文档 // BasicDBObject info=new BasicDBObject(); // info.put("x", 203); // info.put("y", 102); // doc.put("info", info); // //调用collection的insert方法,并将数据持久化到磁盘上 // users.insert(doc); // // /* // * search // */ // //查询表users的第一条数据 // DBObject myDoc=users.findOne(); // System.out.println("第一条数据是:"+myDoc); /* // 查询集合中所有的数据 DBCursor cur = users.find(); System.out.println("Record Count:" + cur.count()); while (cur.hasNext()) { DBObject object = cur.next(); System.out.println(object); // 取出对象中列表为字段名为'uname'和'upwd'的数据 System.out.println("math:" + object.get("math") + "\tuphysics:" + object.get("physics")); } */ } }
package TestDemo0; import java.net.UnknownHostException; import java.util.*; import com.mongodb.*; public class IndexDemo { /** * @param args * @throws UnknownHostException */ public static void main(String[] args) throws UnknownHostException { // TODO Auto-generated method stub Mongo m=new Mongo(); DB db=m.getDB("test"); //在Subject表上age列建索引 DBCollection users = db.getCollection("Subject"); users.createIndex(new BasicDBObject("age",1)); //查找Subject表上 的索引信息 List<DBObject> list=users.getIndexInfo(); for(DBObject o:list){ System.out.println(o); } //删除Subject表上的所有索引 //users.dropIndexes(); //删除age索引 users.dropIndex("age"); } }
package TestDemo0; import java.net.UnknownHostException; import java.util.regex.Pattern; import com.mongodb.*; public class Compare { /** * @param args * @throws UnknownHostException */ public static void main(String[] args) throws UnknownHostException { Mongo m=new Mongo(); DB db=m.getDB("test"); DBCollection users = db.getCollection("Subject"); // //操作符“等于” // DBObject query=new QueryBuilder().put("name").is("zhipeng").get(); // DBCursor cur=users.find(query); // while(cur.hasNext()){ // System.out.println(cur.next()); // } // //操作符“不等于” // DBObject query1=new QueryBuilder().put("name").notEquals("zhipeng").get(); // DBCursor cur1=users.find(query1); // while(cur1.hasNext()){ // System.out.println(cur1.next()); // } //操作符“大于” //DBObject query=new QueryBuilder().put("age").greaterThan(24).get(); //操作符“大于等于” //DBObject query=new QueryBuilder().put("age").greaterThanEquals(24).get(); //操作符“小于” //DBObject query=new QueryBuilder().put("age").lessThan(25).get(); //操作符“小于等于” //DBObject query=new QueryBuilder().put("age").lessThanEquals(25).get(); // //操作符“In” // int [] inList={24,30};//age=24 or age=30 // DBObject query=new QueryBuilder().put("age").in(inList).get(); // //操作符“notIn” // int [] inList={24,30};//age=24 or age=30 // DBObject query=new QueryBuilder().put("age").notIn(inList).get(); //操作符“and” //DBObject query=new QueryBuilder().put("name").is("zhipeng").and("age").is(24).get(); // //正则表达式 查询数据 // Pattern pattern=Pattern.compile("^M"); // BasicDBObject query = new BasicDBObject("name",pattern); //DBCursor cur=users.find(query); //操作符”跳过“ DBCursor cur=users.find().skip(2);//跳过前2条记录 while(cur.hasNext()){ System.out.println(cur.next()); } } }
package TestDemo0; import java.io.*; import java.net.UnknownHostException; import com.mongodb.*; import com.mongodb.gridfs.GridFS; import com.mongodb.gridfs.GridFSDBFile; import com.mongodb.gridfs.GridFSInputFile; public class GridFSDemo { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { Mongo m=new Mongo(); DB db=m.getDB("test"); // //将E盘下的Water.jpg 存储到MongoDB中 // File imageFile=new File("E:\\Water.jpg"); // GridFS gfs=new GridFS(db,"photo"); // GridFSInputFile gfsFile=gfs.createFile(imageFile); // gfsFile.setFilename("water_pic"); // gfsFile.save(); // String FileName="water_pic"; GridFS gfs=new GridFS(db,"photo"); // //查询GridFS数据 // GridFSDBFile imageForOutput=gfs.findOne(FileName); // System.out.println(imageForOutput); // //读取GridFS数据,并保存到本地 // GridFSDBFile imageForOutput=gfs.findOne(FileName); // imageForOutput.writeTo("E:\\myWater.jpg"); //删除指定GridFS数据 gfs.remove(gfs.findOne(FileName)); } }