【转】java操作mongo简单实例

package maven.demo.test;

import java.util.ArrayList;
import java.util.List;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.QueryOperators;

public class MongoDB {
	private static void print(String str){
		System.out.println(str);
	}
	public static void main(String[] args) {
		try {
			//创建连接
			Mongo m=new Mongo("127.0.0.1", 27017);
			//得到数据库
			DB db=m.getDB("test");
			//得到所有数据库
//			List<String> colls=m.getDatabaseNames();
//			for(String str:colls){
//				System.out.println(str); 
//			}
			
//			//得到所有的集合(表)
//			for(String collection:db.getCollectionNames()){
//				System.out.println(collection); 
//			}
			
			//删除一个数据库
			//m.dropDatabase("sun");
			
			//得到sun表
			DBCollection coll=db.getCollection("things");
			
			//查看一个表的索引
//			for(DBObject index:coll.getIndexInfo()){
//				System.out.println(index); 
//			}
			
//			DBObject myDoc=coll.findOne();
//			System.out.println(myDoc); 
			
			//添加
//			BasicDBObject doc=new BasicDBObject();
//			doc.put("name", "sunshan");
//			doc.put("sex", "男");
//			doc.put("age", 22);
			//coll.insert(doc);

			//删除
			//coll.remove(doc);
			
//			BasicDBObject doc1=new BasicDBObject();
//			doc1.put("i", 0);
//			doc1.put("j", "foo");
//			BasicDBObject doc2=new BasicDBObject();
//			doc2.put("hello", "world");
//			doc1.put("doc2", doc2);
//			coll.insert(doc1);
			
			//修改
//			BasicDBObject doc3=new BasicDBObject();
//			doc3.put("x", 6);
//			BasicDBObject doc4=new BasicDBObject();
//			doc4.put("x", 1);
//			coll.update(doc3, doc4,true,false);
			//如果数据库不存在就添加 |多条修改 false只修改第一天,true如果有多条就不修改
			
			//条件查询
			//System.out.println(coll.find(doc4));
			
			//coll.findAndRemove(doc4);
			
//			//批量插入
//			List<DBObject> datas=new ArrayList<DBObject>();
//			for(int i=0;i<10;i++){
//				BasicDBObject bd=new BasicDBObject();
//				bd.put("name", "data");
//				bd.append("age", i);
//				datas.add(bd);
//			}
//			coll.insert(datas);
			
			//添加
//		    BasicDBObjectBuilder documentBuilder = BasicDBObjectBuilder.start();
//			documentBuilder.add("database", "mkyongDB");
//			documentBuilder.add("table", "hosting");
//			BasicDBObjectBuilder documentBuilderDetail = BasicDBObjectBuilder.start();
//			documentBuilderDetail.add("records", "99");
//			documentBuilderDetail.add("index", "vps_index1");
//			documentBuilderDetail.add("active", "true");
//			documentBuilder.add("detail", documentBuilderDetail.get());
//			coll.insert(documentBuilder.get());
			
			//添加
//			Map<Object,Object> map=new HashMap<Object,Object>();
//			map.put("a", 1);
//			map.put("b", "b");
//			coll.insert(new BasicDBObject(map));
			
			//添加
//			String json ="{'1' : '1','2' : '2',"+"'11' : {'1' : 1, '2' : '2', '3' : '3'}}";
//			DBObject dbobject=(DBObject)JSON.parse(json);
//			coll.insert(dbobject);
			
			//更新
//			BasicDBObject bdo=new BasicDBObject();
//			bdo.put("x", 11);
//			coll.update(new BasicDBObject().append("x", 0), bdo);
			
			//更新
//			BasicDBObject bdo=new BasicDBObject().append("$inc", new BasicDBObject().append("x", 12));
//			coll.update(new BasicDBObject().append("x", 11), bdo);
			
			//更新 
			//如果不使用$set 直接是 age则所有的都会更新
			//根据age为9条件把name:data修改为 name:sun
//			BasicDBObject bdo=new BasicDBObject().append("$set", new BasicDBObject().append("name", "sunshan"));
//			coll.update(new BasicDBObject().append("age", 9), bdo);
			
			//更新 
			//根据name为data条件把age:批量修改为 age:age
//			BasicDBObject bdo=new BasicDBObject().append("$set", new BasicDBObject().append("age", "age"));
//			coll.update(new BasicDBObject().append("name", "data"), bdo,false, true);
			
			//查询age=1
//			print("find:"+coll.find(new BasicDBObject("age", 1)).toArray());
			//查询age<=1
//			print("find: "+coll.find(new BasicDBObject("age", new BasicDBObject("$lte", 1))).toArray());  
			//查询age>=1
//			print("fint: "+coll.find(new BasicDBObject("age", new BasicDBObject("$gte", 1))).toArray());
			//查询age!=1
//     		print("fint: "+coll.find(new BasicDBObject("age", new BasicDBObject("$ne", 1))).toArray());
			//查询age=1,2,3
//			print("fint: "+coll.find(new BasicDBObject("age", new BasicDBObject(QueryOperators.IN ,new int[]{1,2,3}))).toArray());
			//查询age!=1,2,3
//			print("find: "+coll.find(new BasicDBObject("age" ,new BasicDBObject(QueryOperators.NIN ,new int[]{1,2,3}))).toArray());

//			print("find: "+coll.find(new BasicDBObject("age" ,new BasicDBObject(QueryOperators.EXISTS ,true))).toArray());
			//查询age属性
//			print("find: "+coll.find(null ,new BasicDBObject("age" ,true)).toArray());
			
//			List<DBObject> list=coll.find().toArray();
//			for(Object obj:list){
//				System.out.println(obj); 
//			}
			
			//true查询出来存在的  /false 查询出来不存在的
			//print(""+coll.find(new BasicDBObject("y",new BasicDBObject(QueryOperators.EXISTS,false))).toArray());
			
//			DBObject dbc=new BasicDBObject();
//			dbc.put("name", 1111);
//			List<DBObject> list=new ArrayList<DBObject>();
//			list.add(dbc);
//			System.out.println(coll.insert(list).getN()); 
				
//			//查询部分数据块
//			DBCursor cursor=coll.find().skip(1);
//			while(cursor.hasNext()){
//				System.out.println(cursor.next()); 
//			}

//			DBCursor cur=coll.find(); //DBCursor cur=coll.find().limit(2); 
//			while(cur.hasNext()){
//				System.out.println(cur.next());  
//			}
			//System.out.println(cur.getCursorId()+" "+cur.count()+" "+JSON.serialize(cur));   
			
			//条件查询
			BasicDBObject doc5=new BasicDBObject();
			doc5.put("$gt", 1);
			doc5.put("$lt", 3);
		    print("find 21<y<23:"+coll.find(new BasicDBObject("y", doc5)).toArray()); 
//			BasicDBObject doc5=new BasicDBObject();
//			doc5.put("$gt", 1);
//			doc5.put("$lt", 3);
//			BasicDBObject doc6=new BasicDBObject();
//			doc6.put("x", doc5);
//			System.out.println(coll.find(doc6));

} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值