- 浏览: 156991 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
youjianbo_han_87:
jredis有连接池啊
Jedis操作redis -
zhouzq1008:
就是,为什么只有4.0
eclipse 安装 resin 3 步骤 (转) -
lalaeye:
是的,如果不释放资源的话,如果操作连接频繁的话,或导致打开太多 ...
Jedis操作redis -
hugh.wang:
还好,注意释放一下资源~~
Jedis操作redis -
nihao7010:
先赞一下再仔细阅读
Jedis操作redis
这段时间一直在研究mongoDB,由于资料很少,网上的又都是互相抄袭,真正学到的不多。官方文档对我来说又很难看懂,总之我是看的都想放弃了的。
但还好坚持了下来,现在把学习的心得记录一下。
程序员特点,没有废话,直接上代码:
以上对mongodb的基本操作应该够用,现在还有弄不明白的就是它的模糊查询和MapReduce的用法,模糊查询只知道是用正则来实现。
以后有空再细细摸索一下吧
但还好坚持了下来,现在把学习的心得记录一下。
程序员特点,没有废话,直接上代码:
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<String> 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<list.size();i++){ System.out.println(list.get(i)); } */ /**按照groupid分组,并且分组后计算fid的sum //select groupid ,sum(fid) fidCount form table group by groupid //key是group by 的字段 BasicDBObject key = new BasicDBObject(); key.put("groupid", true); //cond是where的条件 可以为空 BasicDBObject cond = new BasicDBObject(); //initial是字段sum的初始值 BasicDBObject initial = new BasicDBObject(); initial.put("fidCount", 0); //reduce是分解归纳求和 fid的sum String reduce = "function(obj,prev) { prev.fidCount +=obj.fid; }"; DBObject obj = collection.group(key, cond, initial, reduce); Set set = obj.keySet(); Iterator it = set.iterator(); int i=0; while(it.hasNext()){ String str_key = (String) it.next(); System.out.println(obj.get(str_key)); i++; } */ } catch (Exception e) { e.printStackTrace(); } } @Test public void deleteTable(){ try { Mongo m = new Mongo( "localhost" , 27017 ); //创建名为test_db的数据库 DB db = m.getDB("test_db"); //db.dropDatabase(); //删除数据库 DBCollection collection = db.getCollection("test_table"); //collection.drop(); //删除表 collection.remove(new BasicDBObject()); //清空表数据 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Test public void findDataByParams(){ try { Mongo m = new Mongo( "localhost" , 27017 ); //创建名为test_db的数据库 DB db = m.getDB("test_db"); DBCollection collection = db.getCollection("test_table"); DBObject obj = new BasicDBObject(); //select ip,groupid form table where uid=name1 obj.put("uid", "name1"); DBCursor cursor=collection.find(obj,new BasicDBObject("ip",1).append("groupid", 1)); while(cursor.hasNext()){ System.out.println(cursor.next()); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Test public void updateData(){ try { Mongo m = new Mongo( "localhost" , 27017 ); //创建名为test_db的数据库 DB db = m.getDB("test_db"); DBCollection collection = db.getCollection("test_table"); /** 以下是用findAndModify方法更改数据 DBObject obj = new BasicDBObject(); obj.put("uid", "name59"); DBObject obj2 = new BasicDBObject(); obj2.put("ip", "111.111.111.333"); //UPDATE test_table SET ip = 111.111.111.333 WHERE uid=name59; DBObject objOld = collection.findAndModify(obj, new BasicDBObject("$set",obj2)); System.out.println("objOld==="+objOld); //这里,findAndModify方法执行后,返回的DBObject内容还是旧的内容,但是数据库里的记录已经改为了新的记录 //如下: DBCursor cursor= collection.find(obj); while(cursor.hasNext()){ System.out.println("objNew=="+cursor.next()); } */ // 以下是用update方法更改数据 注:findOne是返回满足条件的第一个记录 // UPDATE test_table SET ip = 100.100.100.333 WHERE uid=name59; DBObject obj = new BasicDBObject(); obj.put("uid", "name59"); DBObject obj2 = collection.findOne(obj); obj2.put("ip", "100.100.100.333"); collection.update(obj, obj2); System.out.println("==="+collection.findOne(obj)); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Test public void deleteData(){ try { Mongo m = new Mongo( "localhost" , 27017 ); //创建名为test_db的数据库 DB db = m.getDB("test_db"); DBCollection collection = db.getCollection("test_table"); DBObject obj = new BasicDBObject(); obj.put("uid", "name59"); //删除数据 collection.remove(obj); getDBData(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
以上对mongodb的基本操作应该够用,现在还有弄不明白的就是它的模糊查询和MapReduce的用法,模糊查询只知道是用正则来实现。
以后有空再细细摸索一下吧
发表评论
-
权重算法实现(转)
2011-12-26 11:28 4087原文地址:http://www.blogjava.net/wi ... -
Mongodb的带用户验证replica set配置
2011-10-18 17:14 2767这些天捣鼓了一下mongodb的replica set 本人初 ... -
Java正则(转)
2011-10-13 09:24 913首先说一下java正则表达式的重点概念: 第一、相关类:Pa ... -
Linux下查看某端口占用进程(转)
2011-10-12 11:18 888在Linux操作系统中 查看占用某一端口的进程是什么:#l ... -
easyUi
2011-08-12 16:09 936原文地址:http://www.ityizhan.com/jq ... -
maven3
2011-08-12 11:56 813原文地址:http://suhuanzheng7784877. ... -
hadoop资料
2011-08-03 16:46 791网上下的,详见附件 -
九 redis学习笔记之虚拟内存(转)
2011-08-02 15:53 940原文地址:http://www.cnblogs.com/xha ... -
八 redis学习笔记之主从复制(转)
2011-08-02 15:53 996原文地址:http://www.cnblo ... -
六 redis学习笔记之发布订阅(转)
2011-08-02 15:52 1306原文地址:http://www.cnblogs.com/xha ... -
五 redis学习笔记之pipeline(转)
2011-08-02 15:51 890原文地址:http://www.cnblogs.com/xha ... -
四 redis学习笔记之事务(转)
2011-08-02 15:50 946原文地址:http://www.cnblogs.com/xha ... -
三 redis学习笔记之排序(转)
2011-08-02 15:49 1044原文地址:http://www.cnblogs.com/xha ... -
二 redis学习笔记之数据类型(转)
2011-08-02 15:49 995原文地址:http://www.cnblogs.com/xha ... -
一 redis学习笔记之环境搭建(转)
2011-08-02 15:47 754原文地址:http://www.cnblo ... -
redis学习笔记之持久化(转)
2011-08-02 15:41 808原文地址:http://www.cnblo ... -
redis安装指南(转)
2011-08-01 17:04 921原文地址:http://mwt198668.blog.163. ... -
Jedis操作redis
2011-08-01 16:51 19452package org.jzkangta.jedis; ... -
log4j配置(转)
2011-03-30 12:17 533原文地址:http://www.blogjava.net/zJ ... -
自定义异常
2011-03-22 11:21 735给自己的小例子
相关推荐
简单的java操作mongodb 适合于初学者
java 操作mongodb代码,可直接运行成功,作为初学者非常实用。其中数据库是包含用户名和密码,用户名root ,密码root。
将一系列图片文件存储到MongoDB中 java操作mongodb存储文件
Java操作MongoDB实例,压缩包内为完整项目源码,使用MyEclipse软件 见文:https://blog.csdn.net/qq_33427869/article/details/87270444
Java 操作Mongodb中存储的文件的实例
mongodb安装配置及java操作mongodb 三个word文档和一个Jar包,记录了使用说明
java操作mongodb的工具类,增删查改方法
用Java操作mongoDB数据库,完成增删改查操作
Java Tutorial:Java操作MongoDB入门
1.java操作mongodb的demo 2.直接解压即可运行
java操作mongodb增删改查mongodb查询 in like 修改自增
使用JAVA操作MongoDB进行简单测试,构建项目工具为Maven,使用的简单案例进行测试,包含增删改查的具体方式以及实现,pom.xml中集成了Spring所需jar包。欢迎下载。
MongoDB Java操作大全 源代码 实例
一个完全符合企业设计规范的Java操作MongoDB数据库,涉及各种增删改查操作及@Test增删改查使用示范,可极大方便MongoDB开发,可直接通过代码学习MongoDB的使用。 使用环境:Myeclipse、MongoDB
java连接mongoDB,增删改查操作等等
本文给大家分享的是使用Java操作MongoDB的一些基本方法,包含多种数据库的连接方式,增删改查等方法,非常的实用,有需要的小伙伴可以参考下
JAVA连接MongoDB,并进行简单的增删改查操作小例子源码,相关博文: http://blog.csdn.net/dream_broken/article/details/36014733
java操作MongoDB简单示例文档,包括安装MongoDB 以及简单的操作:添加 数据、删除数据、修改数据等。
该资源包含了一个java操作mongodb的简单教程代码,简单易懂。