设为首页 收藏本站
查看: 1483|回复: 0

[经验分享] mongodb-基本简介

[复制链接]

尚未签到

发表于 2015-7-8 08:23:06 | 显示全部楼层 |阅读模式
  这是我摘抄对mongodb的介绍:
  对于大数据量、高并发、弱事务的互联网应用,MongoDB则是一个如瑞士军刀般的利剑。--说明了mongodb出现的环境
  例如:为了产品中的某个实体的查询操作,我们需要把一个本属于该实体的数据拆分至另一个表中,以便进行连接查询。于是无论是创建,删除还是更新,我们要涉及的操作便增加了许多。更别说互联网项目时刻都在发展和变动,改变一个存储单元结果是常事,至今关系型数据库的在线模式更新依旧不是件简单的事情。--mongodb出现的必要性
  选择MongoDB,是因为它的集合支持松散的模式,易于灵活调整;支持复杂的属性,并可为之建立索引,作为查询条件。
  MongoDB的系统管理员上辈子是折翼的天使,使他们牺牲自己,方便了整个团队。--mongodb存在的问题
丰富的数据模型
MongoDB是面向文档的数据库,不是关系型数据库。放弃关系模型的主要原因就是为了获得更加方便的扩展性,当然还有其他的好处。
基本的思路就是讲原来的行(row)的概念转换成为了更加灵活的文档模型。
MongoDB没有模型,文档的键是不会事先定义也不会固定不变。
文档是MongoDB的核心概念,多个键及其关联的值有序的放置在一起便是文档。
集合就是一组文档。如果说MongoDB中的文档类似于关系型数据库中的行,那么集合就如同表。
子集合是用“.”字符分开的按命名空间划分的子集合。
MongoDB中多个文档组成集合,同样多个集合可以组成数据库。一个MongoDB实例可以承载多个数据库,它们之间可视为完全独立的。每一个数据库都有独立的权限控制,即便是在磁盘上面。要记住一点:数据库名最终会变成文件系统里的文件,这也就是有如此多限制的原因。
特殊的几个数据库的名是保留的
admin local config
命名空间:将数据库的名字放在集合名前面,得到就是集合的完全限定名。但是字节的长度不能超过121字节。
Mongo启动
mongod在没有参数的情况下会使用默认数据目录/data/db,并使用27017端口,如果数据目录不存在或者不可写,服务器会启动失败。
mongod还会启动一个非常基本的HTTP服务器,监听数字比主端口号高1000的端口,也就是28017端口。这意味着你可以通过浏览器访问http://localhost:28017来获取数据库的管理信息。
MongoDB shell 可以能运行任意javascript程序,而且shell的真正威力还在于它是一个独立的MongoDB客户端。开启的时候,shell会连到MongoDB服务器的test数据库,并将这个数据库连接赋值给全局变量db。这个变量是通过shell访问MongoDB的主要入口点。
shell的基本操作
CRUD
1、创建
insert函数添加一个文档到集合里面。
2、读取
find会返回集合里面所有的文档,若只是想查看一个文档,可以用findOne
find 和findOne 可以接收查询文档形式的限定条件。这将通过查询限制匹配的文档,使用find时,shell自动显示最多20个匹配的文档,但可以获取更多的文档。
3、更新
update接受(至少)两个参数:第一个是要更新文档的限定条件,第二个是新的文档。
4、删除
remove()用来从数据库中永安性删除文档。在不使用参数进行调用的情况下,它会删除一个集合内的所有文档,它也可以接受一个文档以指定限定条件。
蹩脚的集合名
使用db.集合名的方式来访问集合一般不会有问题,但是如果集合名恰好是数据库类的一个属性就有问题了。
基本类型
null  用于表示空值或者不存在的字段
布尔值  两个值‘true’和‘false’
32位整数   shell这个类型不可以用,因为javascript仅支持64位浮点数,所以32位整数会被自动转换
64位整数
64位浮点数
字符串
符号   shell不支持这种类型,shell将数据库里的符号类型转换成字符串
对象id 对象id是文档的12字节的唯一ID
日期  日期类型储存的是从标准纪元开始的毫秒值,不存储时区。
正则表达式
代码
二进制
最大值
最小值
未定义 文档中也可以使用未定义的类型(javascript中的null和underfined是不同的类型)
数组
内嵌文档

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-84284-1-1.html 上篇帖子: MongoDB学习笔记(7)--访问控制 下篇帖子: mongodb(基础用法)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表