- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《mongoDb基础开发(Java)》.pptx
wedde;分享目标:
帮助开发人员快速掌握使用java进行mongoDB开发的基础知识,减少自主学习时间。
内容概述:
mongoDB安装、shell操作、数据库基础管理、数据模型设计;
Java开发基础,spring mongoTemplate使用(依赖库、配置、典型代码等),原生java驱动使用。
不包括的知识:
基础概述,Replication, Sharding, GridFS, 安全, 备份。
高级查询,聚合、js语句查询、GIS查询、游标、事务?;MongoDB管理基础
特点概述
数据模型设计
安装、管理
Shell操作
数据库基础管理
增删改查
Java开发基础
基于原生Java驱动开发
基于spring mongoTemplate开发;面向文档的数据库,以BSON格式存储,无schema。
与传统数据库的对应
集合(collection) - 表
文档(document) - 行记录(row)
关于事务
仅支持单文档的事务,不支持多文档的事务。
read uncommitted,写操作返回前,其他进程有可能读到写入的数据;即使写操作返回(?journal commits前),数据也可能丢失(断电/重启……)。
MongoDB倾向于使用更多的内存处理数据,缓存查询结果等。增加内存会有效提升性能。;每一个文档都有一个特殊的字段“_id”。
默认12字节,系统生成,时间4+机器3+进程2+计数3;
也可自己指定_id的值,保证唯一即可,比如自增序列。
单文档最大16M,但采用GridFS则无限制。
不需要遵循关系数据库的3NF原则,但在违反之前要有充分的理由。
数据模型设计要考虑:存储效率、查询、扩展性等。
考虑对象嵌套,数组/列表;
不支持join,根据查询行为考虑索引的创建;
考虑冗余数据,考虑文档大小的增长,优化性能;;一个客户有多个地址
类似:
书籍的借阅记录
某商品的评论
订单的物流记录
……;书籍 - 出版社
类似:
朋友圈点赞
im好友分组
;个性化推荐记录
;Windows下安装
下载、执行安装
配置数据存储位置,所在磁盘的/data/db/
可配置成后台服务随系统启动
Linux下安装(Ubuntu举例)
添加MongoDB的公钥
使用sudo apt-get install mongodb-org
启动
默认的数据存储位置在/data/db/,也可以在启动时通过命令行参数指定。;以Javascript语法交互的命令行程序。
可以定义变量/函数
启动shell: mongo
查看数据库列表:show dbs
切换到指定数据库:use [db name]
查看当前数据库集合列表:show collections
查看当前数据库信息:db.stats()
查看集合信息:db.[collection name].stats()
查看数据库当前状态:db.serverStatus()
删除当前数据库:db.dropDatabase();插入有三种方式:insert, save, upsert,适用不同场景。
举例:
ducts.insert( { item: card, qty: 15 } )
db.inventory.save( { type: book, item: notebook, qty: 40 } )
db.inventory.update(
{ type: book, item : journal },
{ $set : { qty: 10 } },
{ upsert : true } )
如果待保存对象不存在’_id’属性,则系统自动创建;如果有,则系统会检查是否唯一。;不支持类似join的语法,where子句使用json对象表达。
支持传统sql的各种运算符、逻辑表达式,更支持对数组和复杂对象的支持,使用json对象表达。
运算符:
比较,$gt, $gte, $lt, $lte, $ne
逻辑表达,$or, $and, $not, $nor
针对数组,$all, $elemMatch, $size
其他, $in, $nin, $exists
举例:
db.customer.find({site:litb, custId:8421763}).pretty()
db.inventory.find( { $or:
[ { quantity: { $lt: 20 } }, { price: 10 } ]
} );{
_id: 100,
type: food,
item: xyz,
qty: 25,
price: 2.5,
memos: [
{ memo: on time, by: shipping },
{ memo
您可能关注的文档
- 《Level-3-Listening-Reading》.pdf
- 《Level-3-Word-Grammer-Writting》.pdf
- 《Level-4-Listening-Reading》.pdf
- 《Level-5-Listening-Reading》.pdf
- 《level-a-land-pattern-construction》.pdf
- 《Level1DiplomaNVQinHairandBeautysamplepagesUnitB1》.pdf
- 《level1文法》.pdf
- 《Level_2_chinese》.pdf
- 《level_2_grammer》.pdf
- 《level_3_vocabulary》.pdf
- 《Morality and Psychological Distance A Construal Level Theory Perspective》.pdf
- 《MS pwr opt level (POPT)说明》.doc
- 《MSP430_在单电池供电的LED_照明中的应用》.pdf
- 《MT1092-2016矿灯用LED及LED光源组技术条件》.pdf
- 《MT_T_1092—2016矿灯用LED及LED光源组技术条件(送审稿)》.doc
- 《Multilevel modeling of individual and group level mediated effects.》.pdf
- 《Multiphoton Ionization in Strong Laser Fields》.pdf
- 《Musical Theory - The Basic Jazz Guitar Handbook (Excellent)》.pdf
- 《MUZZY_Scriptbook_Level_II_Dutch》.pdf
- 《MUZZY_Scriptbook_Level_II_French》.pdf
文档评论(0)