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

xiaoxiao2021-02-28  69

(总共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
转载请注明原文地址: https://www.6miu.com/read-63956.html

最新回复(0)