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));
}
}