现在的位置: 首页 > 综合 > 正文

Java 操作Mongo

2013年12月12日 ⁄ 综合 ⁄ 共 5985字 ⁄ 字号 评论关闭
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));

	}

}

抱歉!评论已关闭.