MongoDb学习历程
Posted 哦克Oak
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDb学习历程相关的知识,希望对你有一定的参考价值。
RDBMS vs NoSQL
RDBMS
实时一致性 事务 多表联合查询
NoSQL
简单便捷 方便扩展 更好的性能
-键 - 值对存储,列存储,文档存储,图形数据库
(*****)- 最终一致性,而非ACID属性
- 非结构化和不可预知的数据
- CAP定理
- 高性能,高可用性和可伸缩性
优点:
- 高可扩展性
- 分布式计算
- 低成本
- 架构的灵活性,半结构化数据
- 没有复杂的关系
缺点:
- 没有标准化
- 有限的查询功能(到目前为止)
- 最终一致是不直观的程序
大数据时代,sql已经不太能满足需求.
MongoDB:
nosql不仅仅是sql,分布式,介于关系 和 非关系数据库之间的产品,是非关系数据库中最丰富,最像关系数据库的.
关系型数据库遵循ACID规则: 原子性 一致性 独立性 持久性
mongo:
db.shutdownServer()
kill -15
db.dropDatabase()
基本语法:
增
删
db.collection_xiaoya.remove({c:1}) 删除c为1的所有数据, 不允许传入空的条件,会删除符合条件的全部信息.
db.collection_xiaoya.drop() 删除整张表.
改
update 只会更新最上面的一条,为了防止update误操作.
查
索引:(显著的加快查询速度)
查询:
db.collection_xiaoya.getIndexes()
创建:
db.collection_xiaoya.ensureIndex({x:1})
分类:
id索引 key-value key 是字段的名字 value 可以为1或者-1 表示索引的方向.
单键索引(在某一个字段上建立,例如字符串/数字/日期,不会自动创建)
多键索引(值具有多个记录,例如数组)
复合索引:当我们的查询条件不只有一个时,就需要建立复合索引.
过期索引:在一段时间后会过期的索引.索引过期后,相应的数据会被删除.(最短也得60秒)
全文索引(文本索引):对字符串与字符串数组创建全文可搜索的索引
地理位置索引(微信/陌陌等):
集合:
复制集:
分片:
数据均衡:
linux服务器下:
bin/mongo 没有空格的.
show dbs
use dbxxx (没有库的话 会自动创建)
show tables
show collections
db.集合名.find() (默认是全部查询)
db.集合名.find().count()
for循环 插入
db.集合名.find().skip(3).limit(2).sort({x:1}) //过滤3条数据 显示2条 按x进行排序
db.order_raw_data.findOne(); //这个事
db.order_report_info.remove({"extItemId" : "18120968"}) // 要有大括号哦
WriteResult({ "nRemoved" : 3 }) //说明删除了3条!!
java操作mongodb:
monodb驱动带了把json转换成DBObject对象的功能,加上Google的Gson,就可以实现把普通的对象保存到mongodb中。
以上是关于MongoDb学习历程的主要内容,如果未能解决你的问题,请参考以下文章