- 浏览: 378154 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
真的全站唯一:
描述的能不能准确一点,我也以为bigDecimal性能比dou ...
【性能】Java BigDecimal和double性能比较 -
zhanggang807:
学习到了。。以后会考虑往这方面设计
【java规范】Java spi机制浅谈 -
Xiong506:
xiyuan1025 写道你这是在linux下吗,我在linu ...
[监控]Btrace监控简单笔记 -
Xiong506:
xiyuan1025 写道你这是在linux下吗,我在linu ...
[监控]Btrace监控简单笔记 -
Bll:
找不到实现类
【java规范】Java spi机制浅谈
因为未来业务发展的一个需求里的,考虑要用到NoSql,所以做了一些预研。今天简单体验了下mongdb,感觉挺合适的,有点热血沸腾。简单记录下mongoDB的一些初体验。
mongoDB的特性有哪些?以下是官网的定义:
MongoDB (from "humongo us") is a scalable, high-performance, open source NoSQL database. Written in C++, MongoDB features:
-
Document-oriented storage »
JSON-style documents with dynamic schemas offer simplicity and power.
-
Full Index Support »
Index on any attribute, just like you're used to.
-
Replication & High Availability »
Mirror across LANs and WANs for scale and peace of mind.
-
Auto-Sharding »
Scale horizontally without compromising functionality.
-
Querying »
Rich, document-based queries.
-
Fast In-Place Updates »
Atomic modifiers for contention-free performance.
-
Map/Reduce »
Flexible aggregation and data processing.
-
GridFS »
Store files of any size without complicating your stack.
-
Commercial Support »
Enterprise class support, training, and consulting available.
以上定义很喜人吧,我还没有深入研究。其他的特性且不说,单是以下两个特性已经能满足我的需求了。
1.面向集合,模式自由 。 “面向集合”(Collection-Oriented),意思是数据被分组存储在数据集中,被称为一个集合(Collenction)。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似关系型数据库 (RDBMS)里的表(table),不同的是它不需要定义任何模式(schema)。
2.虽然是非结构化数据,但支持动态查询 。允许在任意字段赏建立索引,支持任意属性作为条件的遍历查找。
不过深入的还需要在调研。
以下记录一下体验帖,没任何技术含量,入门可参考:
1.安装
1.下载:http://www.mongodb.org/downloads 在上面找到你需要的版本。
2.linux下的安装
解压即可,并通过sudo mkdir -p /data/db 创建数据存储目录。
3.启动:先到mongodb安装目录的bin目录下启动mongod,然后启动一个客户端mongo即可进行操作。输入help命令就可以查到主要的命令了。逐一体验即可。
2.java客户端体验
1.还是在官网上下载java driver
2.编写代码
以下是我编写的一些插入、查找功能等代码,还是十分简单的
package test.mongodb; import java.net.UnknownHostException; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.DBObject; import com.mongodb.Mongo; import com.mongodb.MongoException; public class MyDB { DB db; DBCollection coll; MyDB(String dbName) { Mongo m = null; try { m = new Mongo("localhost", 27017);//创建Mongo实例 } catch (UnknownHostException e) { e.printStackTrace(); } catch (MongoException e) { e.printStackTrace(); } db = m.getDB(dbName);//获取数据库 coll = db.getCollection("foo");//数据集,类似表 } /** * 往数据集里插入一个文档 */ public void insertDoc() { BasicDBObject doc = new BasicDBObject(); doc.put("memberId", "abing3"); doc.put("businessModel", "manufature"); doc.put("count", 1); BasicDBObject info = new BasicDBObject(); info.put("x", 203); info.put("y", 102); doc.put("attr", info); coll.insert(doc); } /** * 往数据集里循环插入文档 */ public void loopInsertDoc() { for (int i = 0; i < 100; i++) { BasicDBObject doc = new BasicDBObject(); doc.put("memberId", "abing3"+i); doc.put("businessModel", "manufature"); doc.put("count", 1); BasicDBObject info = new BasicDBObject(); info.put("x", 203); info.put("y", 102); doc.put("attr", info); coll.insert(doc); } } /** * 从数据集里查找一个文档 */ public void findDoc() { DBObject myDoc = coll.findOne(); System.out.println(myDoc); } /** * 统计文档数 */ public void countDocs(){ System.out.println(coll.count()); } /** * 通过游标遍历文档 */ public void iterateAccess() { DBCursor cur = coll.find(); while (cur.hasNext()) { System.out.println(cur.next()); } } /** * 通过条件查找 */ public void findDocWithQuery() { BasicDBObject query = new BasicDBObject(); query.put("member_id", "abing37"); DBCursor cur = coll.find(query); while (cur.hasNext()) { System.out.println(cur.next()); } } /** * 查询集合 */ public void querySet() { BasicDBObject query = new BasicDBObject(); query.put("i", new BasicDBObject("$gt", 20).append("$lte", 30)); DBCursor cur = coll.find(query); while (cur.hasNext()) { System.out.println(cur.next()); } } /** * 创建索引 */ public void createIndex() { coll.createIndex(new BasicDBObject("memberId", 1)); } //test public static void main(String[] args) { MyDB db = new MyDB("mydb"); // db.insertDoc(); // db.loopInsertDoc(); // db.findDoc(); // db.countDocs(); // db.iterateAccess(); // db.findDocWithQuery(); // db.querySet(); // db.createIndex(); } }
发表评论
-
Xml ResourceBundle简单实现
2012-04-17 21:45 4452ResourceBundle主要是用于和本地语言环境相关的一些 ... -
【maven】多子模块maven模板工程archetype创建过程
2012-04-02 20:55 17654最近项目里需要创建一 ... -
【java基础】如何设计java应用程序的平滑停止
2012-03-05 23:44 10999java应用程序退出的触发机制有: 1.自动结束:应用没有存 ... -
【java并发】juc Executor框架详解
2012-02-26 13:55 12495Executor 框架是 juc 里提供的线程池的实现。 ... -
【java并发】juc高级锁机制探讨
2012-02-23 00:52 8696最近在看一些j ... -
【java并发】基于JUC CAS原理,自己实现简单独占锁
2012-02-14 13:47 7849synchronized的基本原理回 ... -
【JDBC,数据库】Oracle date和timestamp类型混用时需要注意的索引失效问题
2011-12-14 15:27 89531.关于 Oracle date和timestamp类型 D ... -
【JVM】HotSpot JVM内存管理和GC策略总结
2011-12-13 22:05 15953JVM的相关知识是学习java ... -
【性能】JDBC PreparedStatement和连接池PreparedStatement Cache学习记录
2011-12-08 17:20 16871之前看JDBC规范的时候对PreparedStatement只 ... -
32位机器下的一个java.lang.OutOfMemoryError错误分析
2011-10-17 11:19 2595昨天在本人windows机器( ... -
[监控]Btrace监控简单笔记
2011-09-09 10:57 5038前阵子看了公司网站的一个cache 命中率统计的btrace监 ... -
DBCP数据源配置项记录
2011-09-01 20:22 2994网站最近发生了数据库连接爆掉的问题。排查了下各个应用存在 ... -
【性能】Java BigDecimal和double性能比较
2011-08-28 20:06 14247我们知道 java 里面有个 BigDecimal ... -
【Spring】IOC容器并发条件下,可能发生死锁
2011-08-28 17:07 69221.背景 上周在生产环境应用启 ... -
JDK7 AIO 初体验
2011-08-17 19:20 2579JDK7 AIO初体验 JDK7已经releas ... -
如果要用java实现算法,一定慎用递归
2011-04-06 20:41 12948现象 : 递归是我们很经典的一种算法实现,可以很好的 ... -
java日志,需要知道的几件事(commons-logging,log4j,slf4j,logback)
2011-02-28 17:12 46353java日志,需要知道的几件事 如果对于comm ... -
JVM问题诊断常用命令:jinfo,jmap,jstack
2010-08-17 17:55 124821.jinfo 描述:输出给定 java ... -
java 浮点数为什么精度会丢失
2010-07-15 22:30 4915由于对float或double 的使用不当,可能会出现精度 ... -
一个枚举类的方法设计
2010-06-21 15:28 1686public enum ActionType { A ...
相关推荐
NoSQLBooster提供了一系列功能,旨在提升MongoDB的使用体验: 1. **图形化用户界面(GUI)**:NoSQLBooster提供了一个直观的GUI,允许用户通过简单的拖放操作和清晰的布局来执行查询、插入、更新和删除操作,极大地...
描述中的"Mac版的nosqlbooster mongodb可视化工具,非常好用,推荐"表明了该工具在Mac OS上的表现优秀,具有良好的用户体验,并且得到了使用者的高度评价。NosqlBooster的易用性和高效性使得它成为管理MongoDB数据库...
MongoDB是一款流行且高性能的NoSQL数据库,以其灵活性、可扩展性和高可用性著称。NoSQL Manager for ...通过遵循"安装须知.txt"中的指导,用户可以安全有效地安装和使用这款工具,进一步提升他们的MongoDB操作体验。
9. **版本控制**:版本7.0.8可能包含了对新版本MongoDB的支持和兼容性改进,以及修复了一些已知问题,提高了整体稳定性和用户体验。 10. **持续更新与支持**:NosqlBooster团队会不断更新软件,以适应MongoDB的最新...
通过使用NoSQL Manager for MongoDB,无论是开发人员还是DBA,都能更加高效地进行MongoDB的日常维护和管理工作,尤其是在处理中文数据时,全中文界面无疑降低了使用门槛,提升了用户体验。如果你正在处理非结构化或...
MongoDB初体验:深入理解NoSQL数据库的魅力 MongoDB是一种流行的开源、分布式文档数据库,它属于NoSQL数据库的一种。在当今大数据和云计算的时代背景下,MongoDB因其灵活性、高性能和易于扩展性而备受青睐。本文将...
总结来说,"NoSQL Manager for MongoDB"是提升MongoDB管理效率和用户体验的重要工具,其丰富的功能覆盖了数据库的日常维护、数据操作和性能监控等多个方面,是MongoDB开发和运维人员的理想选择。
NosqlBooster for MongoDB是一款高效、用户友好的MongoDB管理工具,版本为6.2.10,专为简化数据库操作而设计。在本文中,我们将深入探讨这款工具的功能及其对MongoDB操作的便利性。 首先, NosqlBooster for ...
MongoDB是一种流行的NoSQL数据库系统,它以非关系型数据模型为核心,提供了高效、可扩展的数据存储解决方案。...通过安装“nosqlbooster4mongo-6.0.4.exe”文件,你就可以开始体验这个版本带来的所有功能了。
通过下载提供的 nosqlbooster4mongo5.2.11.exe 文件,用户可以直接安装并体验这个版本的 NosqlBooster for MongoDB。 总的来说,NosqlBooster for MongoDB 是一款强大的 MongoDB 管理工具,它提供了丰富的功能,...
NosqlBooster for MongoDB的5.0.3版本可能包含了对之前版本的改进和修复,比如性能优化、新功能的添加或者用户体验的提升。通过这个工具,开发人员和数据库管理员可以更加便捷地进行MongoDB数据库的日常维护、查询...
如果你在使用MongoDB,这款工具无疑会成为你得力的助手,提高你的工作效率并提升开发体验。在下载解压后的“nosqlbooster4mongo-5.1.10.exe”文件,即可安装并开始使用这个优秀的MongoDB客户端工具。
NoSqlBooster是一款备受推崇的MongoDB数据库管理工具,尤其在升级至5.1.4新版后,其功能和性能得到了显著...通过压缩包中的“nosqlbooster4mongo-5.1.4.exe”文件,用户可以直接安装并体验这款优秀的MongoDB管理工具。
这两款工具都旨在提供更直观、更高效的MongoDB操作体验,帮助用户快速定位和解决问题,提升开发和运维效率。它们通过图形化的界面使得数据库管理任务变得更加简单,无论是在日常的查询、备份、性能优化,还是在故障...
NosqlBooster 5.2.8是该工具的一个版本,提供了一系列增强的功能和优化的用户体验。 NosqlBooster 4Mongo的主要特点包括: 1. **用户友好的界面**:它采用直观的GUI设计,使用户能够轻松地浏览、查询、编辑和管理...
Nosqlbooster for MongoDB就是这样一款专为MongoDB设计的可视化管理工具。 Nosqlbooster for MongoDB 5.2.11是该软件的一个较新版本,它允许用户通过友好的图形用户界面(GUI)来管理MongoDB数据库,包括数据浏览...
NosqlBooster的5.0.3版本可能包含了一些增强的性能和用户体验改进。使用时,首先需要解压缩文件,然后按照安装指南进行操作,连接到本地或远程MongoDB服务器。 总结来说,这个压缩包为MongoDB在Linux环境中的部署...