文档章节

MongoDB-基本增删改查

guquanjiang
 guquanjiang
发布于 2014/11/13 16:53
字数 457
阅读 34
收藏 1
点赞 0
评论 0
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
粉丝 4
博文 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
MongoDB学习笔记(二) 通过samus驱动实现基本数据操作

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

李长春
2011/09/02
0
0
8天学通MongoDB——第一天 基础入门

关于mongodb的好处,优点之类的这里就不说了,唯一要讲的一点就是mongodb中有三元素:数据库,集合,文档,其中“集合” 就是对应关系数据库中的“表”,“文档”对应“行”。 一: 下载 上M...

BobbyLou
2015/08/20
0
0
Python操作Mongodb

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方...

mickelfeng
2017/11/02
0
0
学习日记一:mongoDB安装

第一:解压 第二:把bin目录拷贝到/usr/local/mongodb/ 第三:创建 data、dblogs目录 启动命令:在bin目录下 ./mongod --dbpath=/usr/local/mongodb/data/ --logpath=/usr/local/mongodb/db...

SANSOM
2013/07/22
0
0
Python中MongoDB使用

MongoDB的层级为 database -->collection --> document 安装MongoDB,启动mongo服务 PyMongo模块是Python对MongoDB操作的接口包,主要实现对MongoDB的几种操作:增删改查以及排序等功能 安装...

鱼煎
05/31
0
0
java操作mongodb数据库

1)、 建立MongoDBTest.java,完成简单的mongoDB数据库操作 Mongo mongo = new Mongo('127.0.0.1', 27017); Mongo mongo = new Mongo(); 这样就创建了一个MongoDB的数据库连接对象,它默认连...

浅夏
2014/02/20
0
0
Node.JS -- Mongoose 快速入门

Mongoose时一个用于异步环境的MongoDB的对象模型。 前提条件 先确保本地已经安装了Node.js和一个可以连接上的MongoDB。 安装Mongoose Mongoose和其他的依赖模块一样安装,使用npm 命令: 连接...

米阳MeYoung
06/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

【JVM】JSTATD结合Java VisualVM进行远程监控JVM运行情况(二)

内存泄露指的是程序中动态分配内存给一些临时对象,但是对象不会被GC(java垃圾回收机制gabage collection)所回收,它始终占用内存。即被分配的对象很大但已无用; 内存溢出指的是程序运行过...

大白来袭
5分钟前
0
0
聊聊ribbon的超时时间设置

序 本文主要研究一下ribbon的超时时间设置 配置 实例 ribbon: ReadTimeout: 10000 ConnectTimeout: 10000 MaxAutoRetries: 0 MaxAutoRetriesNextServer: 1 eureka: enabled: ......

go4it
14分钟前
0
0
一行代码结果叹为观止,能做到这么极致的也只有python了

Python 这门语言非常的有趣,不仅可以做高大上的人工智能、大数据、机器学习。还可以用来做 Web、爬虫。还有其它很多的应用。今天我就给大家展示下一行 Python 代码都可以做些什么。 一行打印...

猫咪编程
17分钟前
1
0
KingShard使用

对于kingshard的功能,在git中可以看到明确的功能说明 主要功能: 1. 基础功能 支持SQL读写分离。 支持透明的MySQL连接池,不必每次新建连接。 支持平滑上线DB或下线DB,前端应用无感知。 支...

mickelfeng
19分钟前
0
0
Linux 下 查找某个字符串

如果你想在当前项目下 查找 "test" 这个字符串,可以这样: grep -rn "test" * * : 表示当前目录所有文件,也可以是某个文件名-r 是递归查找-n 是显示行号-R ...

nsns
19分钟前
0
0
数据结构 之 B树与红黑树

https://blog.csdn.net/v_july_v/article/details/6530142 http://www.cnblogs.com/CarpenterLee/p/5503882.html...

晨猫
19分钟前
0
0
Linux查看服务器总内存和总硬盘大小

一、linux CPU大小; 其实应该通过Physical Processor ID来区分单核和双核。而Physical Processor ID可以从cpuinfo或者dmesg中找到. flags 如果有 ht 说明支持超线程技术 判断物理CPU的个数可...

浮躁的码农
19分钟前
0
0
Postfix命令行说明

Postfix tips and Troubleshooting Commands Here's a list of stuff I user everyday and other email admins will also be using, Let me know if I missed anything List/Print current m......

mingle
26分钟前
0
0
是时候使用Helm了:Helm, Kubernetes的包管理工具

目前我们的一个产品共有4套环境:dev环境、test环境、staging环境、production环境。 其中dev, test, staging环境在一个Kubernetes集群上以不同namespace部署,production环境部署在另一个Kub...

xiaomin0322
33分钟前
0
0
常见的redis的序列化方式

概括 一般redis的序列化方式主要有:字符串序列化、json序列化、xml序列化、jdk序列化,具体可查阅org.springframework.data.redis.serializer.RedisSerializer 的实现类,其中对于json序列化...

菜蚜
47分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部