文档章节

MongoDB-基本增删改查

guquanjiang
 guquanjiang
发布于 2014/11/13 16:53
字数 457
阅读 35
收藏 1
public class MongoDB001 {

	private Mongo mongo;

	/**
	 * 连接mongodb
	 * @param host
	 * @param port
	 * @throws UnknownHostException
	 */
	public MongoDB001(String host, int port) throws UnknownHostException {
		mongo = new MongoClient(host, port);
	}
	
	/**
	 * 获取DB
	 * @param dbname
	 * @return
	 */
	public DB getDB(String dbname) {
		return mongo.getDB(dbname);
	}
	
	/**
	 * 获取collection,如果不存在,则创建
	 * @param db
	 * @param collectionName
	 * @return
	 */
	public DBCollection getCollection(DB db, String collectionName) {
		if(!db.collectionExists(collectionName)){
			return db.createCollection(collectionName, new BasicDBObject("capped", false).append("size", 1048576));
		}
		return db.getCollection(collectionName);
	}

	/**
	 * 插入数据
	 * @param coll
	 * @return
	 */
	public int insert(DBCollection coll) {
		BasicDBObject doc = new BasicDBObject("name", "MongoDB")
				.append("age", 25).append("province", "上海").append("home", "江西").append("_id", 1);
		WriteResult result = coll.insert(doc);
		return result.getN();
	}
	
	/**
	 * 更新数据
	 * @param coll
	 * @param id
	 */
	public void update(DBCollection coll, int id){
		DBObject o = coll.findOne(new BasicDBObject("_id", id));
		coll.update(new BasicDBObject("_id", id), new BasicDBObject("province", "湖南").append("name", o.get("name"))
				.append("age", o.get("age")).append("home", o.get("home")));
	}
	
	/**
	 * 批量插入
	 * @param coll
	 * @return
	 */
	public int bulkInsert(DBCollection coll){
		BulkWriteOperation builder = coll.initializeOrderedBulkOperation();
		BasicDBObject object = null;
		for(int i = 1;i<100; i++){
			object = new BasicDBObject("_id",i);
			builder.insert(object.append("name", "测试"+i).append("age", i).append("province", "上海").append("home", "上海"));
		}
		BulkWriteResult result = builder.execute();
		return result.getInsertedCount();
	}
	
	/**
	 * 游标查询
	 * @param coll
	 */
	public void query(DBCollection coll){
		DBCursor cursor = coll.find(new BasicDBObject("id", 2).append("type", "database"));
		try{
			while (cursor.hasNext()) {
				System.out.println(cursor.next().get("_id"));
			}
		}finally{
			cursor.close();
		}
	}
	/**
	 * 删除DB
	 * @param dbName
	 */
	public void dropDatabase(String dbName){
		mongo.dropDatabase(dbName);
	}
	
	/**
	 * 删除collection
	 * @param coll
	 */
	public void dropCollection(DBCollection coll){
		coll.drop();
	}
	
	/**
	 * 根据id,删除数据
	 * @param coll
	 * @param id
	 * @return
	 */
	public int delete(DBCollection coll, int id){
		return coll.remove(new BasicDBObject().append("_id", id)).getN();
	}
	
	
	public void parallelScanOptions(DBCollection coll){
		ParallelScanOptions options = ParallelScanOptions.builder().batchSize(2).numCursors(2).build();
		List<Cursor> list = coll.parallelScan(options);
		for(Cursor cursor : list){
			while(cursor.hasNext()){
				System.out.println(cursor.next());
			}
		}
	}
}



© 著作权归作者所有

共有 人打赏支持
guquanjiang
粉丝 5
博文 10
码字总数 9544
作品 0
浦东
程序员
私信 提问
Spring boot中mongodb的使用

mongodb的增删改查 Spring Boot对各种流行的数据源都进行了封装,当然也包括了mongodb,下面给大家介绍如何在spring boot中使用mongodb: 1、pom包配置 pom包里面添加spring-boot-starter-dat...

glen_xu
06/11
0
0
MongoDB学习笔记(三) 在MVC模式下通过Jqgrid表格操作MongoDB数据

看到下图,是通过Jqgrid实现表格数据的基本增删查改的操作。表格数据增删改是一般企业应用系统开发的常见功能,不过不同的是这个表格数据来源是非关系型的数据库MongoDB。nosql虽然概念新颖,...

李长春
2011/09/02
0
0
MongoDB学习心得(整理中)

NoSQL(Not Only SQL)-非关系型数据库,又一种流行的数据库技术。除去复杂、臃肿的结构化语言,简单的几个函数就可以完成增删该处基本操作。NoSQL好比一个灵活的猴子,而SQL就像大笨象了。 ...

cjp路人
2013/11/03
0
0
Python 数据库骚操作 -- MongoDB

前言 最近这几天准备介绍一下 Python 与三大数据库的使用,这是第一篇,首先来介绍 MongoDB 吧,这里介绍 MongoDB 的两款操作库,走起!! MongoDB GUI 工具 首先介绍一款 MongoDB 的 GUI 工...

Mr_zebra
11/13
0
0
MongoDB学习笔记(二) 通过samus驱动实现基本数据操作

传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由(database)、集合(collection)、文档对象(document)三个层次组成。MongoDB对于...

李长春
2011/09/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

php获取客户端IP

php获取客户端IP 首先先阅读关于IP真实性安全的文章:如何正確的取得使用者 IP? 「任何從客戶端取得的資料都是不可信任的!」 HTTP_CLIENT_IP头是有的,但未成标准,不一定服务器都实现。 ...

DrChenXX
15分钟前
0
0
. The valid characters are defined in RFC 7230 and RFC 问题

通过这里的回答,我们可以知道: Tomcat在 7.0.73, 8.0.39, 8.5.7 版本后,添加了对于http头的验证。 具体来说,就是添加了些规则去限制HTTP头的规范性 参考这里 具体来说: org.apache.tom...

west_coast
34分钟前
1
0
刷leetcode第704题-二分查找

今天双十一买的算法书到货了,路上刷到有人说的这个题,借(chao)鉴(xi)一下别人的思路,这个是C++标准库里面的经典方法,思路精巧,优雅好品味 int search(int* nums, int numsSize, in...

锟斤拷烫烫烫
59分钟前
1
0
【分享实录】BANCOR算法详解及代码实现

1 活动基本信息 1)主题:【区块链技术工坊22期】BANCOR算法详解及代码实现 2)议题: BANCOR算法的特点和优劣势 BANCOR算法和举例 如何加入BANCOR.NETWORK交易所 如何开发自己的BANCOR去中心...

HiBlock
今天
2
0
微信小程序(2)

开始看微信小程序的教程了。刚刚看完官方教程的视图层部分。这里摘录一些自己认为的部分关键点。 1.直接修改数值无法重新渲染,需要使用setData()方法; 2.列表渲染中:wx:key用于保持项目在...

MKjy
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部