Mongodb重难点解析(一、基本理解与操作)

  (总共4个部分,静下心来,玩转mongodb;刚学还是热乎的,传上来不容易,欢迎指正学习!)

NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

CAP定理(CAP theorem):
指出对于一个分布式计算系统来说,不可能同时满足以下三点:
一致性(Consistency) (所有节点在同一时间具有相同的数据)
可用性(Availability) (保证每个请求不管成功或者失败都有响应)
分隔容忍(Partition tolerance) (系统中任意信息的丢失或失败不会影响系统的继续运作)
CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类;

mongodb:文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有有机会对某些字段建立索引,实现关系数据库的某些功能。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。mongodb中有三元素:数据库,集合,文档,其中“集合”就是对应关系数据库中的“表”,“文档”对应“行”。
sql中的表table对应mongodb中的collection;sql中的row对mongodb中的document;column–field;不支持table join,而是文档嵌入;文档是一组键值(key-value)对(即BSON)。
集合存在于数据库中,集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。
文档的数据结构和JSON基本一样。所有存储在集合中的数据都是BSON格式。BSON是一种类json的一种二进制形式的存储格 式,简称Binary JSON。

(可以创建多个数据库,每个数据库可以有很多用户角色,每个用户对数据库分别拥有不同的操作权限)
cd  C:\Program Files\MongoDB\Server\3.4\bin      进入bin目录
mongo               进入mongo shell(以加入环境变量)
mongodb://localhost         连接本地服务器
use zhou            创建/切换到数据库
db.zhou.insert({name:"zhou"})   插入数据
show dbs            显示已有的数据库
db.dropDatabase()       删除数据库
show tables         显示数据库中已有的集合
db.test1.insert({title:"Mongo"})插入数据/建立新的集合
db.test1.find().pretty()    序列化显示集合中的内容
db.test1.update({title:"Mongo"},{$set:{title:"Mongo2"}})  更新
db.test1.remove({name:"zhou"})   删除文档,不带参数将删除所有数据,在mongodb中是一个不可撤回的操作
db.col.find({"likes":{$lt:50}}).pretty() 等价于sql中  where likes<50    lte/gte:小于/大于等于
db.col.find({"by":"菜鸟教程", "title":"MongoDB 教程"}).pretty()  相当于sql中and:WHERE by='菜鸟教程' AND  title='MongoDB 教程';
db.col.find({$or:[{"by":"菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()    or
db.test1.find().limit(NUMBER)    指定读取的记录条数
db.test1.find().limit(NUMBER).skip(NUMBER)       skip跳过前面几条显示后面的
db.test1.find().sort({KEY:1})      排序,key为排序的字段名,1为升序,-1为降序
db.test1.find({$where:function(){return this.name="zhou"}})  调用where函数
db.test1.update({name:"zhou1"},{$inc:{age:30}})  在原来age的基础上加30
db.test1.count({age:20})  计数age=20的文档
db.test1.distinct(age)    显示不重复的age
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值