`
lvwenwen
  • 浏览: 958084 次
  • 性别: Icon_minigender_1
  • 来自: 魔都
社区版块
存档分类
最新评论

整理了一下mongodb

阅读更多

url:http://jzkangta.iteye.com/blog/1018685
1.基本对象插入
BasicDBObject obj = new BasicDBObject();   
obj.put("id", i); 
collection.insert(obj); 

2.按照指定字段排序
DBCursor cursor=collection.find().sort(new BasicDBObject("id",-1));   //排序 1为升序  -1为降序 

3.分页
DBCursor cursor=collection.find().limit(10);   //只取前十个 
DBCursor cursor=collection.find().skip(10); //取前十个记录之后的 
collection.find().count()  ;  //总记录数 

4.范围查询
//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))); 

5.集合查询
//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)));


6.查询特定字段
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);


7.去掉重复查询
//select distinct("uid") from table
注意:distinct("uid")这个字段是什么类型,list.get(i)就是什么类型
List list=(List) collection.distinct("uid");



8.以下是用findAndModify方法更改数据
//UPDATE test_table  SET ip = 111.111.111.333 WHERE uid=name59;
DBObject obj = new BasicDBObject();
obj.put("uid", "name59");
DBObject obj2 = new BasicDBObject();
obj2.put("ip", "111.111.111.333");
DBObject objOld = collection.findAndModify(obj, new BasicDBObject("$set",obj2));
//这里,findAndModify方法执行后,返回的DBObject内容还是旧的内容,但是数据库里的记录已经改为了新的记录
System.out.println("objOld==="+objOld);   


9.以下是用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));   


10.删除数据 
DBObject obj = new BasicDBObject(); 
obj.put("uid", "name59"); 
collection.remove(obj);   


★★★★★★★★★★★★★★★★★http://yangchunhe.iteye.com/blog/1312255★★★★★★★★★★★★★★★★★★★★★

1. 值范围查询,类似 mysql 下的 between 或者 >,< 比较操作
日期为例: (不知道mongodb的日期是什么类型呢?真的能这样做?还是我想多了呢?)
dbo.put("date",new BasicDBObject("$gte",startDate).append("$lte", endDate));

2. 模糊查询,类似于 mysql 下的 like 
如下: content 为要查询的内容
String content = "aa";
Pattern pattern = Pattern.compile("^.*" + content+ ".*$", Pattern.CASE_INSENSITIVE);  (★java的正则还能用到mongo上。。汗啊)
BasicDBObject dbo = new BasicDBObject();
dbo.put("content", pattern);
DBCursor cursor=collection.find(dbo);

3.普通更新字段,查找 id 为 1 的用户更新他的 userName 字段:
BasicDBObject upBdb=new BasicDBObject("$set" ,new BasicDBObject("username"," 新名字 "));
collection.update(new BasicDBObject().append("_id",1),upBdb,false,false);

4.整形字段自增 , 例如要是 commentsNums 字段自增 1 :
BasicDBObject upBdb=new BasicDBObject("$inc",new BasicDBObject("commentsNums", 1);// 加一操作
newColl.update(new BasicDBObject().append("_id",1),upBdb,false,false);

5查询数量:
条件 bdb =new BasicDBObject(“userId”,1);
newColl.find(bdb).count() ;

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics