已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京掌上极浩信息技术有限公司Spring-data-mongodb使用手册文档信息(Document Info)标题(Title)Spring-data-mongodb使用手册文档编号(No)2012-09-19作者(Author)张瑜最后发布时间(Last Update)2012-09-20概述(Summarize)安装mongodb以及掌握spring-data-mongodb的使用方法,一些最佳实践修订信息(Revise Info)修订日期(Date)修订人(Reviser) 修订内容(Revises)附件信息(Attachment Info)目录文档信息(Document Info)2修订信息(Revise Info)3附件信息(Attachment Info)41.概述61.1.目的61.2.范围62.准备62.1.环境配置62.2.Windows7安装mongodb62.2.1.配置环境变量72.2.2.启动配置mongodb73.Spring-data-mongodb93.1.背景93.1.1.高级API93.1.2.低级API93.2.MongoDbFactory93.3.MongoTemplate93.4.Operations93.4.1.常用Api的方法:93.5.项目中如何配置实用mongodb103.6.Callback113.7.Topic和Messaging/PubSub113.8.Cache114.NoSQL数据库设计114.1.案例1115.最佳实践115.1.项目案例1(Tinybee项目)111. 概述1.1. 目的让团队成员比较快的上手mongodb的相关功能,思考如何结合自己的项目使用。1.2. 范围所有工程师。2. 准备mongodb 下载地址:/downloadsmongodb 官方文档下载地址:/docs/mongodb-docs-2012-09-19.pdf十天精通mongodb 下载地址(强烈建议看下,其中包含对mongodb的详细介绍):/file/id_45545890496119199.htm如果你对mongodb希望有更多的了解(其中为mongodb资料专题):/html/3548.html mongodb管理工具下载地址:/file/id_45545890496119201.htm2.1. 环境配置在这里提供针对windows7 系统的配置方案2.2. Windows7安装mongodbmongodb及其管理工具下载地址参见准备章节!mongodb启动命令参数详见:/jacky0525/blog/330482.2.1. 配置环境变量1、在系统环境变量中添加MONGODB_HOME如图所示:2、在PATH中添加%MONGODB_HOME%bin 如图所示:在mongodb 目录中 新建 data 和 log 文件夹(为启动时做准备)2.2.2. 启动配置mongodb进入DOS命令窗口 输入一下命令:mongod -dbpath D:mongodbdata -logpath D:mongodblog -logappend -directoryperdb-dbpath数据库安装目录-logpath 数据库输出目录-logappend 日志追加,默认为覆盖-directoryperdb 表示每个db一个目录执行命令之后 开启新的 DOS窗口 执行 mongo 输出 表示启动成功。目前是以无权限限制的方式启动的,你可以做任何操作。现在我们需要切换到admin下,创建一个root用户。执行命令:show dbs 显示所有dbuse admin 使用admin dbdb 显示当前使用的dbdb.addUser(”root”,”root”); 添加用户,用户名为root 密码为 rootdb.auth(”root”,”root”); 为用户授权这样我们就为admin db创建好用户,接下来以权限限制方式启动mongodb(记得关掉之前开启的服务),执行命令(在之前启动命令中添加参数-auth即可):mongod -dbpath D:mongodbdata -logpath D:mongodblog -logappend -auth directoryperdb-auth 安全模式下运行接下来使用之前授权的用户名密码登录,打开新的DOS命令窗口输入如下命令:mongo 数据库名称 u 用户名 p 密码mongo admin u root p root注意:为了启动方便可以把mongodb加入windows系统service以管理员身份打开DOS命令窗口键入如下命令:mongod -dbpath D:mongodbdata -logpath D:mongodblog -logappend -auth -directoryperdb install这时候会在系统服务中增加 mongo db 项第一次配置完成后,一定要重启才会有效果 重启mongo客户端,不输入-u-p可以直接进入,但是不具有任何权限。3. Spring-data-mongodb3.1. 背景SQL or NoSQL?Thats a question! SQL 与 NoSQL 的争论从来没有停息过,但其实任何一种技术都不会是适合一切应用场景的,重要的是你要充分了解自己的需求,再充分了解你要选择的技术的优劣。优势:快速!(当然,这和具体的应用方式有关,通常来说,它比一般的关系型数据库快5位左右。)很高的可扩展性 轻轻松松就可实现PB级的存储(但是可能我们并不需要PB级的存储,10TB可能就够了)他有一个很好的 replication 模式 (replica sets)有很完善的Java API他的存储格式是Json的,这对Java来说非常好处理,对javascirpt亦然。运维起来非常方便,你不用专门为它安排一个管理员。它有一个非常活跃的社区。他的版本控制非常清楚。MongoDB 背后的公司(10gen)已经准备好了明天在 MongoDB 上面的投入的资金。劣势:应用经验缺乏,我们都没有相关NoSQL 产品的使用经验。项目相对来说还比较新。和以往的存储相比,数据的关系性操作不再存在。常用Jar:spring-data-mongodbmongo-java-driverspring-core相关JAR在MAVEN包管理中搜索选择对应版本即可3.1.1. 高级API3.1.2. 低级API3.2. MongoDbFactory就像所有的数据库连接,mongoDbFactory就是连接工厂,通过配置单台服务器或者连接池(pool)的方式获取Mongodb服务器的连接。3.3. MongoTemplate 就像Spring提供的JDBC,hibernate和ibatis的template一样,spring-data-mongodb也提供了一个基础的泛型MongoTemplate供开发者可以快速的利用代码完成基础的crud工作。在实践中可以考虑完全省去dao层的设计,直接在service层注入相应的template实例。 在此推荐写一个Repository接口 其中提供对mongodb的CRUD操作。3.4. Operations其实所有的操作都是直接映射Mongodb本身提供的命令行,Spring-data-mongodb文档来操作。官网提供的API Javadoc有问题报404,只能看HTML版的参考手册:/spring-data/data-mongodb/docs/current/reference/html/404问题修复了(官方API):/spring-data/data-mongodb/docs/current/apidocs/3.4.1. 常用Api的方法:新增方法:User user = new User(.);/将user对象保存到user这个collection中mongoTemplate.save(user);/将user对象保存到new collection这个collection中mongoTemplate.save(new collection,user);/将user对象保存到user这个collection中mongoTemplate.insert(user);/将user对象保存到new collection这个collection中mongoTemplate.insert(new collection, user);/将user的对象列表(List)保存到usercollection中去mongoTemplate.insertList(userInList);/将user的对象列表(List)保存到new collectioncollection中去mongoTemplate.insertList(new collection, userInList);另外请注意其中的save和insert的区别。它们的区别为:1)save意思是,当记录不存在时插入,或者是当记录已存在是更新,实际上就是save or update的意思。2) insert的意思是:当记录不存在时插入,而如果记录存在时则忽略,继续插入。查询方法:/创建查询条件 id = 123 和 name = zhangyuQuery query = new Query(Criteria.where(id).is(123).and(name).is(zhangyu);/执行查询返回结果List user = mongoTemplate.find(query, User.class);/创建查询条件 id = 123 和 name = zhangyuQuery query = new Query(Criteria.where(id).lte(123).and(name).is(zhangyu);删除方法:User user = new User(.);/删除user集合中的user对象mongoOperation.remove(user);/删除test集合下的id=2的user对象 mongoOperation.remove(test, new Query(Criteria.where(id).is(2);/删除test集合下的,id=3的user对象,最后并且返回这个被删除的对象User deletedUser = mongoOperation.findAndRemove(test,new Query(Criteria.where(id).is(3), User.class);3.5. 项目中如何配置实用mongodb配置文件如图所示:之后通过注解注入mongoTemplate 即可3.6. 基于实体Bean操作1、 使用Document注解指明一个领域对象将被持久化到MongoDB中。Id注解identifies。Document注解,表示这个POJO最终要持久化为MongoDB中的document,id指出了需要持久化的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高效能物流配送操作手册
- 公平交易之市场秩序承诺书4篇
- 大学生心理健康教育与咨询手册
- 供应商违约处理措施告知函(8篇范文)
- 向欺凌说不说清构建平安校园环境小学主题班会课件
- 办公设备与耗材管理模板
- 企业宣传资料审核清单确保宣传准确性
- 保质完成重大项目承诺书(3篇)
- 网络安全工程师渗透测试执行预案
- 严于律己履行岗位职责承诺书7篇
- 高超声速飞行技术
- 第四章-空气和废气监测
- 海康威视全系产品交流-课件
- 保山市旅游发展总体规划
- 人工智能导论知到章节答案智慧树2023年哈尔滨工程大学
- 2022年全国高考新高考I卷读后续写课件- 高三英语二轮复习
- 【超星尔雅学习通】航空与航天网课章节答案
- 考向1 化学与STSE(附答案解析)-备战高考化学一轮复习(全国通用)
- 2023年报告模版单位政治生态分析研判报告
- GA 891-2010公安单警装备警用急救包
- 媒介经营与管理-课件
评论
0/150
提交评论