java操作mongoDB

这段时间一直在研究mongoDB,由于资料很少,网上的又都是互相抄袭,真正学到的不多。官方文档对我来说又很难看懂,总之我是看的都想放弃了的。
但还好坚持了下来,现在把学习的心得记录一下。

程序员特点,没有废话,直接上代码:

public class Test2 {

	@Test
	public void setDBData(){
		// 连接本地数据库   
		try {
			Mongo m = new Mongo( "localhost" , 27017 );
			//创建名为test_db的数据库   
	        DB db = m.getDB("test_db");  
	        //获取test_table中的集合(类似于获取关系数据库中的表)   
	        Set cols = db.getCollectionNames();   
	        //创建一个叫做"test_table"的集合   
	        DBCollection collection = db.getCollection("test_table");
	        for(int i=0;i<100;i++){
	        	 //基本DB对象,最终插入数据库的就是这个DB对象   
		        BasicDBObject obj = new BasicDBObject();  
		        obj.put("id", i);
		        obj.put("fid", i%30);
		        obj.put("uid", "name"+i%60);
		        obj.put("groupid", i%40);
		        obj.put("ip", "192.168.0."+(i+1)%40);
		        obj.put("regTime", new Date());
		        collection.insert(obj);
	        }
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	@Test
	public void getDBData(){
		// 连接本地数据库   
		try {
			Mongo m = new Mongo( "localhost" , 27017 );
			//创建名为test_db的数据库   
	        DB db = m.getDB("test_db");  
	        //创建一个叫做"test_table"的集合   
	        DBCollection collection = db.getCollection("test_table");
	        //排序 1为升序  -1为降序
			DBCursor cursor=collection.find().sort(new BasicDBObject("id",-1));   //排序 1为升序  -1为降序
			//DBCursor cursor=collection.find().limit(10);   //只取前十个
	        //DBCursor cursor=collection.find().skip(10); //取前十个记录之后的
	        //collection.find().count()  ;  //总记录数
	        //select * from test_table where id>=10 and id<30  注:$gt=(>)  $gte=(>=)  $lt=(<) $lte=(<=)  $ne=(!=)
	        //DBCursor cursor = collection.find(new BasicDBObject("id",new BasicDBObject("$lt", 30).append("$gte", 10)));
			/**
			//select * form table where id in (1,12,23)
			int [] strs = new int[3];  //其实也可以放在List里面
			strs[0] = 1;
			strs[1] = 12;
			strs[2] = 23;
			DBCursor cursor=collection.find(new BasicDBObject("id",new BasicDBObject("$in",strs)));
			*/
			
	        /**查询特定字段
	        DBObject query = new BasicDBObject();//要查的条件
	        query.put("uid", "name10");
	        DBObject field = new BasicDBObject();//要查的哪些字段
	        field.put("id", true);
	        field.put("fid", true);
	        field.put("ip", true);
	        DBCursor cursor=collection.find(query,field);
	        */
								

			while(cursor.hasNext()){   
		        System.out.println(cursor.next());   
		    }   
	        /** select distinct("uid") from table
	         * 注意:distinct("uid")这个字段是什么类型,list.get(i)就是什么类型
			List list=(List) collection.distinct("uid");
			for(int i=0;i

以上对mongodb的基本操作应该够用,现在还有弄不明白的就是它的模糊查询和MapReduce的用法,模糊查询只知道是用正则来实现。
以后有空再细细摸索一下吧

转自: http://jzkangta.iteye.com/blog/1018685

相关文章

发表评论

返回顶部