MongoDB课程

第一部分 MongoDB体系结构
1.1 NoSQL 和 MongoDB
        NoSQL=Not Only SQL,支持类似SQL的功能, 与Relational Database相辅相成。其性能较高,不使用SQL意味着没有结构化的存储要求(SQL为结构化的查询语句),没有约束之后架构更加灵活。
        NoSQL数据库四大家族 列存储 Hbase,键值(Key-Value)存储 Redis,图像存储 Neo4j,文档存储MongoDB
        MongoDB 是一个基于分布式文件存储的数据库,由 C++ 编写,可以为 WEB 应用提供可扩展、高性能、易部署的数据存储解决方案。
        MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富、最像关系数据库的。在高负载的情况下,通过添加更多的节点,可以保证服务器性能。


1.2 MongoDB 体系结构

1.3 MongoDB 和RDBMS(关系型数据库)对比

1.4 什么是BSON

        BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和Binary Data类型。BSON可以做为网络数据交换的一种存储形式,是一种schema-less的存储形式,它的优点是灵活性高,但它的缺点是空间利用率不是很理想。
        {key:value,key2:value2} 这是一个BSON的例子,其中key是字符串类型,后面的value值,它的类型一般是字符串,double,Array,ISODate等类型。
BSON有三个特点:轻量性、可遍历性、高效性
 

1.5 BSON在MongoDB中的使用
        MongoDB使用了BSON这种结构来存储数据和网络数据交换。把这种格式转化成一文档这个概念(Document),这里的一个Document也可以理解成关系数据库中的一条记录(Record),只是这里的Document的变化更丰富一些,如Document可以嵌套。
MongoDB中Document 中 可以出现的数据类型

 1.7 MongoDB启动和参数说明

参数                  说明
dbpath            数据库目录,默认/data/db
port                 监听的端口,默认27017
bind_ip            监听IP地址,默认全部可以访问
fork                  是否已后台启动的方式登陆
logpath            日志路径
logappend        是否追加日志
auth                 是开启用户密码登陆
config              指定配置文件

 

1.8 mongo shell 的启动

启动mongo shell
        ./bin/mongo 
指定主机和端口的方式启动
        ./bin/mongo --host=主机IP --port=端口

1.9 Mongodb GUI工具
1.9.1 MongoDB Compass Community
        MongoDB Compass Community由MongoDB开发人员开发,这意味着更高的可靠性和兼容性。它为MongoDB提供GUI mongodb工具,以探索数据库交互,具有完整的CRUD功能并提供可视方式。借助内置模式可视化,用户可以分析文档并显示丰富的结构。为了监控服务器的负载,它提供了数据库操作的实时统计信息。就像MongoDB一样,Compass也有两个版本,一个是Enterprise(付费),社区可以免费使用。适用于Linux,Mac或Windows。
1.9.2 NoSQLBooster(mongobooster)
        NoSQLBooster是MongoDB CLI界面中非常流行的GUI工具。它正式名称为MongoBooster。
        NoSQLBooster是一个跨平台,它带有一堆mongodb工具来管理数据库和监控服务器。这个Mongodb工具包括服务器监控工具,Visual Explain Plan,查询构建器,SQL查询,ES2017语法支持等等......它有免费,个人和商业版本,当然,免费版本有一些功能限制。NoSQLBooster也可用于Windows,MacOS和Linux。

第二部分 MongoDB命令

2.1 MongoDB的基本操作

        查看数据库
                 show dbs;
        切换数据库 如果没有对应的数据库则创建
                 use 数据库名;
        创建集合 
                 db.createCollection("集合名")
        查看集合
                 show tables;
                 show collections;
        删除集合
                 db.集合名.drop();
        删除当前数据库
                 db.dropDatabase();

2.2 MongoDB集合数据操作(CURD)
2.2.1 数据添加

        1. 插入单条数据 db.集合名.insert(文档)
                文档的数据结构和JSON基本一样。
                所有存储在集合中的数据都是BSON格式。
                BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON。
        2. 例如:
                db.lg_resume_preview.insert({name:"张晓峰",birthday:new ISODate("2000-07-
01"),expectSalary:15000,gender:0,city:"bj"})
                没有指定 _id 这个字段 系统会自动生成 当然我们也可以指定 _id
                ( _id 类型是ObjectId 类型是一个12字节 BSON 类型数据,有以下格式:
                        前4个字节表示时间戳 ObjectId("对象Id字符串").getTimestamp() 来获取
                        接下来的3个字节是机器标识码
                        紧接的两个字节由进程id组成(PID)
                        最后三个字节是随机数。)
        3. 插入多条数据
                db.集合名.insert([文档,文档])

2.2.2 数据查询
        比较条件查询
        db.集合名.find(条件)

逻辑条件查询

 and 条件
        MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,即常规 SQL 的 AND 条件
         db.集合名.find({key1:value1, key2:value2}).pretty()
  
or 条件
         db.集合名.find({$or:[{key1:value1}, {key2:value2}]}).pretty()
not 条件 
         db.集合名.find({key:{$not:{$操作符:value}}).pretty()

分页查询
        db.集合名.find({条件}).sort({排序字段:排序方式})).skip(跳过的行数).limit(一页显示多少数据)

2.2.3 数据更新 调用update

        $set ÿ

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值