整理了一下mongodb

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

猜你喜欢

转载自paynexss.iteye.com/blog/2322484