MongoDB学习

以前学的,现在分享出来,后面有一些没写,有时间再补了。

第一章 NoSql简介
NoSql:Not Only Sql,指非关系型数据库,用于超大规模数据的存储


特点:
1.    代表着不仅仅是sql
2.    没有声明性的查询语言
3.    没有预定的模式
4.    键/值对存储,列存储,文档存储,图形数据库
5.    最终一致性,而不是ACID属性
6.    非结构化和不可预知的属性
7.    CAP定理
8.    高性能、高可用性和可伸缩性


NoSql简史:NoSql一词最早出现在1998年,是Carlo Strozzi开发的一个轻量级、开源、不提供sql功能的关系型数据库
2009年,Last.fm的Johan Oskarsson发起了一次关于分布式开源数据库的讨论,来自Rackspace的Eric Evans再次提出了NoSQL的概念,这时的NoSql主要指非关系型、分布式、不提供ACID的数据库的设计模式 <br>2009年在亚特兰大举行的"no:sql(east)"讨论会是一个里程碑,其口号是"select fun, profit from real_world where relational=false;"。  <br>因此,对NoSql最普遍的解释是:非关系型的,强调Key-Value Stores和文档数据库的优点,而不是单纯的但对ACID.
第二章 MongoDB安装
  1. 在开源中国下找到MongoDB的下载路径,下载安装
  2. 在dos下启动MongoDB,定义dbpath. D:\MongoDB\bin>mongod –logpath D:\MongoDB\logs\MongoDB.log –logappend
    –dbpath D:\MongoDB\data –directoryperdb –serviceName MongoDB –install
  3. 另启dos,通过mongo命令进入mongodb, :mongo 10.3.19.31:62167/test -user -pwd
第三章 MongoDB的概念
SQLMongoDB说明
databasedatabase数据库
tablecollection数据库表/集合
rowdocument数据行/文档
columnfield数据列/属性
indexindex索引
table joins表连接,MongoDB不支持
primary keyprimary key主键。MongoDB会自动创建名为_id的主键

数据库

一个mongodb可以有多个数据库,默认数据库为db,存储在data目录下
MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中。
查看数据库 “show dbs”
显示当前数据库对象或集合 “db”
切换数据库 “use dataBaseName

数据库命名规范;
1. 不能是空字符串(“”)
2. 不能含有空格、.、$、/、\和\0(空字符)
3. 应全部小写
4. 最多64个字节

保留数据库:
* admin:拥有所有的数据库权限
* local:这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
* config:当mongo用于分片设置时,config数据库内在内部使用,用于保存分片的相关信息


文档

文档对应RDBMS中的数据行
文档是一个键值对(bson)。MongoDB的文档不需要设置相同的字段,也不需要相同的数据类型。

RDBMSMongoDB
数据库数据库
表格集合
文档
字段
表联合嵌入文档
主键主键(MongoDB提供了key为_id的主键)


数据库服务和客户端
Mysqld/Oracle mongod
mysql/sqlplus mongo

注意点:
1. 文档中的键值对是有序的
2. 文档中的值不仅可以是在双引号之中的值,还可以是其他的数据类型(甚至可以是嵌入整个文档)
3. MongoDB区分类型和大小写
4. MongoDB的文档键值不能重复(两个属性不能重名)
5. 文档的键是字符串。除了少数情况,键名可以是任意的UTF-8字符

文档键的命名规范:
1. 不能包含\0(空字符),这个字符用来表示键的结尾
2. “.”和$有特殊意义,只能在特殊情况下使用
3. 以下划线开头的名字是保留的(非严格的)


集合

集合是MongoDB中的文档组,对应RDBMS中的数据表格
集合存在于数据库中,没有固定的结构,可以插入不同格式和类型的数据,通常情况下,插入的数据会有一定的关联性
当第一个文档被插入时,集合就会被创建(集合是文档的容器)

集合命名规范:
* 不能是空字符串””
* 不能包含\0
* 不能以”system.”开头,为系统集合保留
* 用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。除非你要访问这种系统创建的集合,否则千万不要在名字里出现$

capped collections

固定大小的集合
capped collections是高性能的自动维护对象的插入顺序。非常适合类似日志记录的功能
与collection(在插入第一条文档时,会自动创建的那种)不同,必须显示创建一个capped collections,指定集合的大小,单位是字节。collection的数据存储空间是提前分配的。eq:db.createCollection(“asd”,{capped=true,size=10000})

注意点:
1. 可以向集合中添加新的数据,如果空间都被使用完毕,新添加的对象会取代最旧的那个数据
2. 可以更新,但是不能增加存储空间,若增加了,则会更新失败
3. 数据库不允许进行删除单个文档,只能使用drop()删除这个collection的所有行
4. 删除之后,如果想再次使用,必须显示的重新创建这个collection。
5. 在32bit机器中,capped collection最大存储为1e9( 1X109)个字节。


未完待续!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值