MongoDB知识点小结

目录

一、初始非关系性数据库

CAD原则

BASE理论

二、非关系型数据库的分类

三、运行MongoDB

四、MongoDB常见命令使用

常见查看命令:       

常见“增”命令:

常见“查”命令:

常见“改”命令:

常见“删”命令:

其他命令:

管道操作(功能一致,但内部实现效果不同)

索引


一、初始非关系性数据库

        非关系型数据库NoSQL:主要用于解决海量数据存储,并发访问以及扩展而出现的。

CAD原则

        在非关系型数据库中CAD原则主要是指:一致性(Consistenly)、可用性(Avalibility)、分区容错性(Drtition)

tip:关系型数据库占CAD中的CA,在关系型数据库中是无分区容错性这一特点的,这是关系型数据库和非关系型数据库的区别。

BASE理论

        BASE是为了解决关系数据库强一致性引起的问题而导致的可用性降低而提出的解决方案。
BASE是下面三个术语的缩写:基本可用(Basically Available)、软状态(Soft state)、最终一致(Eventually consistent)。

二、非关系型数据库的分类

        键值存储数据库 ——Redis

        文档存储数据库 —— MongoDB

        列式存储数据库 —— HBase

        图形存储数据库 —— Neo4j

三、运行MongoDB

        搭建MongoDB的运行环境:

        方法一:mongod --config "configFilePath" mongodb://localhost:27017

        方法二:mongod --dbpath "dbFilePath" --logPath "mongodb.logFilePath" --logappend

注意:被 "" 包裹起来的地方换成指定的文件路径

四、MongoDB常见命令使用

常见查看命令:       

        show dbs        查看所有数据库

        db                  显示当前数据库

        show collections        查看数据库中的所有集合

常见“增”命令:

        db.createCollection("CollectionName")                显示创建集合

        db.CollectionName.insertOne({key1:value1,key2:value2,...})        隐式创建集合,并向集合中插入一条文档信息

        db.CollectionName.insertMany({key1:value1,...},{key1:value1,...},{key1:value1,...},...)   向集合中插入多条文档

常见“查”命令:

        db.CollectionName.find()                查集合中的所有信息

        dbCollectionName.find().pretty()        查集合中的所有信息并格式化展示

        dbCollectionName.find({key1:value1})        条件查询

        条件“与”查询:

                db.CollectionName.find({key:vaule},{key2:value2},{key3:value3})

                db.CollectionName.find({$and:[{key:vaule},{key2:value2},{key3:value3}]})

                db.CollectionName.find({$and:{key:vaule},{key2:value2},{key3:value3}})

        条件“或”查询

                db.CollectionName.find({$or:[{key:vaule},{key2:value2},{key3:value3}]})       

                db.CollectionName.find({$or:{key:vaule},{key2:value2},{key3:value3}})

        db.CollectionName.find({key:{$gt:value}})         查询所有大于value的文档

        db.CollectionName.find({key:{$in:[v1,v2,v2]}})      包含操作符 $in 的使用 

        db.CollectionName.find({key:{$nin:[v1,v2]}})        不包含操作符 $nin 的使用 

        db.CollectionName.find({key:$null})                 查询字段值为空的

        db.CollectionName.find({key:/正则/})                正则表达式查询

常见“改”命令:

        db.CollectionName.updateOne({更新条件},{更新的内容})                                                        db.CollectionName.updateMany({更新条件},{$set{key:value},{key:value}}) 

常见“删”命令:

        db.CollectionName.remove({删除条件})        按条件删除

        db.CollectionName.remove()                        全删除

        db.CollectionName.drop()                删除集合

        db.CollectionName.dropDatabase()        删除当前数据库

其他命令:

        db.CollectionName.find().count()        可统计查询文档的个数

        db.CollectionName.find({},{_id:0,key1:1,key2:1})   查询时显示key,其中_id为0,其他统一为1

        db.CollectionName.find().limit(n)        用于限制显示的文档条数

        db.CollectionName.find().skip(n)        用于跳过n条文档,从n+1条开始显示

        db.CollectionName.find().sort({key1:1,key2:-1})        key1升序,key2降序

管道操作(功能一致,但内部实现效果不同)

        db.CollectionName.aggregate({$limit: n})

        db.CollectionName.aggregate({$skip: n})

        db.CollectionName.aggregate({$sort:{key:1}})

        db.CollectionName.aggregate({$group:{"_id":"$type"}})        对谁进行分组,必须要有"$key"

        db.CollectionName.aggregate({$match:{key:"value"}})        匹配字段key中值为value的

        db.CollectionName.aggregate({$project:{_id:0,key1:value1,key2:value2}})        显示数据

索引

        _id是与系统索引,不可删除(除非把表给删除了)

        相同的索引多次建立是无用的,只记录一次(但升序、降序的索引是不同的)

        db.CollectionName.getIndexs()        查询索引

        db.CollectionName.dropIndex("索引名")        删除索引

        db.CollectionName.dropIndex({key:1})          按照key的指定升序删除索引

        db.CollectionName.dropIndexs()                删除所有索引

        db.CollectionName.totalIndexSize()                查看集合索引的大小

        db.CollectionName.ensureIndex({字段:升降序})        创建索引

        db.CollectionName.ensureIndex({字段:升降序},{name:"xxx"})     指定name属性的创建索引

        db.CollectionName.ensureIndex({字段:升降序},{background:true})        在后台创建索引

        db.CollectionName.createIndex({key1:1},{key2:-1})    复合索引的创建(注意顺序,这是优化索引的关键)

        db.CollectionName.createIndex({"key.value":1})        多键索引创建,引号不可省

        db.CollectionName.createIndex({文档:1},{unique:true})      唯一索引创建

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MongoDB学习手册 ......................................................................................................................... 1 说明.......................................................................................................................................... 2 一、 Mongodb简介 .......................................................................................................... 4 二、 MongoDB特性 ......................................................................................................... 5 适用场景: ....................................................................................................................... 5 不适用场景: ................................................................................................................... 6 三、 MongoDB的工作方式.............................................................................................. 6 四、 MongoDB的下载 ..................................................................................................... 8 五、 MongoDB的安装 ..................................................................................................... 9 六、 MongoDB数据类型................................................................................................ 12 1. Timestamp类型 ...................................................................................................... 12 2. ObjectId类型 .......................................................................................................... 12 3. 数据库关联 ............................................................................................................. 14 七、 GridFS文件系统 ..................................................................................................... 15 八、 索引 ......................................................................................................................... 16 九、 主(Master)/从(slave)数据库同步 ................................................................ 20 1. 建立主/从服务器 ................................................................................................... 20 2. 相关参数说明 ......................................................................................................... 21 3. Slave顶替Master ................................................................................................... 22 4. 切换Master/Slave角色 ......................................................................................... 22 5. 更新主服务器位置 ................................................................................................. 22 十、 MongoDB分片和集群............................................................................................ 24 1. 简单分片实例 ......................................................................................................... 24 2. 高级分片实例 ......................................................................................................... 29 十一、 数据库基本操作:增查删改 ............................................................................. 37 1. Insert ....................................................................................................................... 37 2. Query ....................................................................................................................... 38 3. Remove.................................................................................................................... 52 4. Update ..................................................................................................................... 53 十二、 Shell控制台 ........................................................................................................ 62 1. 执行.js文件 ............................................................................................................ 62 2. –eval ........................................................................................................................ 62 3. 脚本和互动的区别 ................................................................................................. 62 十三、 安全与认证 ......................................................................................................... 63 1) 开启安全认证 ......................................................................................................... 63 2) 添加用户 ................................................................................................................. 64 3) 认证 ......................................................................................................................... 64

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BlackStar-Coder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值