热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java连接操作MongoDBnosql数据库示例

一、介绍MongoDB是一个“绿色”免安装直接解压(unzip)即可运行的高性能,开源,无关系型(NoSQL)的文档型数据库,它在许多场景下可用于替代传统的关系型数据库或键(key)/值(value)存储方式。Mongo使用C++开发,提供了以下功能:*面向集合的存储:适合存
一、介绍
MongoDB是一个“绿色”免安装直接解压(unzip)即可运行的高性能,开源,无关系型(NoSQL)的文档型数据库,它在许多场景下可用于替代传统的关系型数据库或键(key)/值(value)存储方式。Mongo使用C++开 发,提供了以下功能:    
    * 面向集合的存储:适合存储对象及JSON形式的数据。
    * 动态查询:Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
    * 完整的索引支持:包括文档内嵌对象及数组。Mongo的查询优化器会分析查询表达式,并生成一个高效的查询计划。
    * 查询监视:Mongo包含一个监视工具用于分析数据库操作的性能。
    * 复制及自动故障转移:Mongo数据库支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目标是提供冗余及自动故障转移。
    * 高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)。
    * 自动分片以支持云级别的伸缩性(处于早期alpha阶段):自动分片功能支持水平的数据库集群,可动态添加额外的机器。

二、场 景
MongoDB的主要目标是在键/值存储方式以及对传统的RDBMS系统架起一座桥梁,集两者的优势于一身,Mongo 适合用于以下场景:
    * 网站数据:Mongo非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
    * 缓存:由于性能很高,Mongo也适合作为信息基础设施的缓存层。在系统重启之后,由Mongo搭建的持久化缓存层可以避免下层的数据源过载。
    * 大尺寸,低价值的数据:使用传统的关系型数据库存储一些数据时可能会比较昂贵,在此之前,很多时候程序员往往会选择传统的文件进行存储。
    * 高伸缩性的场景:Mongo非常适合由数十或数百台服务器组成的数据库。Mongo的路线图中已经包含对MapReduce引擎的内置支持。
    * 用于对象及JSON数据支持的非常友好,Mongo的BSON数据格式非常适合文档化格式的存储及查询。
三、准备
1.下载MongoDB的最新版列表 http://www.mongodb.org/display/DOCS/Downloads ,
   下载需要的Jar 驱动包 http://github.com/mongodb/mongo-java-driver/downloads 。
2.解压缩刚刚下载的 mongodb-linux-i686-1.2.4.tgz 文件。
3.复制解压好的 mongodb 目录,到自己指定的目录下。
4. 创建一个数据文件目录 mkdir -p  /var/lib/mongodb/
5.运行 Mongodb服务 “./mongod ?dbpath /var/lib/mongodb/ ?logpath /var/log/mongodb.log”
指定数据文件存放的目录,并且指定数据日志文件输入的目录,出现 Thu Mar 25 22:18:52 waiting for connections on port 27017 表示启动服务成功。

四、示 例(CRUD/Java)
   1.创建连接
   
     Mongo db = new Mongo(host, port);
        DBCollection coll=db.getDB(dbName).getCollection("testCollection");
        System.out.println(coll );

  2.执行操作
        
DBCollection coll=getConnection(host, port, dbName);
        DBObject myDoc = coll.findOne();
System.out.println(myDoc);

完整代码示例可以点击这里下载 (Ref)

五、扩展性
MongoDB还可以做Sharding策略,数据路由是MongoDB中的mongos起的作用,如图所示:
http://upload.server110.com/image/20130922/1FKC141-0.png

推荐阅读
  • 前面刚有AWS开战MongoDB,双方“隔空互呛”,这厢又曝出2亿+简历信息泄露——MongoDB的这场开年似乎“充实”得过分了些。长期以来,作为“最受欢迎的NoSQL数据库”,M ... [详细]
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
  • 《Python3 网络爬虫开发实战》:高效实用的 MongoDB 文档存储
    NoSQL,全称NotOnlySQL,意为不仅仅是SQL,泛指非关系型数据库。NoSQL是基于键值对的,而且不需要经过SQL ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • Java工程师书单(初级,中级,高级)
    简介怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作一两年之后开始迷茫的程序 ... [详细]
  • Abp+MongoDb改造默认的审计日志存储位置
    一、背景在实际项目的开发当中,使用AbpZero自带的审计日志功能写入效率比较低。其次审计日志数据量中后期十分庞大,不适合与业务数据存放在一起。所以我们可以重新实现A ... [详细]
  • mongoDB高可用集群环境搭建
    2019独角兽企业重金招聘Python工程师标准在生产环境下,部署一台mongodb服务的话,会存在以下问题:单点问题生产环境是一个 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了Mongodb副本集+分片集群搭建相关的知识,希望对你有一定的参考价值。环境需求: ... [详细]
  • hackingTeam是如何被黑的
    hackingTeam是如何被黑的 ... [详细]
  • Mongodb3.4 就开始支持Decimal 类型,解决double的精度问题,但是不太好用,MapReduce的时候Array.sum 也不能计算 Decimal.比较坑,但是聚合可以用 ... [详细]
  • 我这几年踩过的十个坑,每一条都是血泪教训
    “阅读本文大概需要3分钟。”一、不记录程序部署在哪里“我:他妈的,这个程序明明一直在正确产生日志,可它到底运行在哪里?怎么我 ... [详细]
author-avatar
linxiuying261
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有