文档章节

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
2018/06/11
0
0
MongoDB的增删改查语句

1.请各位参与培训的同事,工作之余完成MongoDB的基本操作, a、安装。 b、增删改查语句操作,并将结果贴在回复中。 MongoDB下载地址:https://www.mongodb.com 基础教程:http://www.runoob...

rainJohn
2018/01/08
2
1
MongoDB学习心得(整理中)

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

cjp路人
2013/11/03
0
0
MongoDB学习笔记(三) 在MVC模式下通过Jqgrid表格操作MongoDB数据

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

李长春
2011/09/02
0
0
Python 数据库骚操作 -- MongoDB

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

Mr_zebra
2018/11/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spark in action on Kubernetes - Playground搭建与架构浅析

前言 Spark是非常流行的大数据处理引擎,数据科学家们使用Spark以及相关生态的大数据套件完成了大量又丰富场景的数据分析与挖掘。Spark目前已经逐渐成为了业界在数据处理领域的行业标准。但是...

阿里云官方博客
7分钟前
0
0
小白大数据学习路线

学习大数据首先了解大数据技术得板块划分: 数据计算(离线计算):Hadoop、spark 数据计算(实时计算):storm、spartstreaming、flink 其他框架:zookeeper 数据采集:flume、Kafka 数据存...

董黎明
20分钟前
0
0
mariadb 内存占用优化

本文由云+社区发表 作者:工程师小熊 摘要:我们在使用mariadb的时候发现有时候不能启动起来,在使用过程中mariadb占用的内存很大,在这里学习下mariadb与内存相关的配置项,对mariadb进行调...

腾讯云加社区
今天
2
0
spring security 自定义登录认证

spring security 自定义认证登录 1.概要 1.1.简介 spring security是一种基于 Spring AOP 和 Servlet 过滤器的安全框架,以此来管理权限认证等。 1.2.spring security 自定义认证流程 1)认证...

EasyProgramming
今天
1
0
Win下Jenkins-2.138源码编译及填坑笔记

源码编译篇 1、 安装JDK1.8-181,操作系统添加JDK环境变量。Java -version验证一下。 注:Jenkins2.138版本,JDK必须jkd1.8.0-101以上,不支持Java9,Maven必须3.5.3以上。 2、 解压Maven3....

编程SHA
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部