MongoDB 数据库的学习
一、MongoDB的简介
1、MongoDB是什么?
-
MongoDB 是由 C++ 语言编写的,基于分布式文件存储的数据库,是一个介于关系数据库和非关系数据库之间的产品,是最接近于关系型数据库的
NoSQL
数据库。 -
MongoDB 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
-
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
2、MongoDB 的主要特点
- MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
- 你可以在MongoDB记录中设置任何属性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road")来实现更快的排序。
- 你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。
- 如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。
- Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
- MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。
- Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。
- Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。
- Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。
- GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。
- MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。
- MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
- MongoDB安装简单。
二、安装MongoDB
1、MongoDB 官网
github:https://github.com/mongodb/
2、安装 MongoDB
(1)打开官网号,选择Products(产品),选择社区版!
(2)进入下载页,点击下载按钮,进行下载!
(3)点击以下的文件,直接点击下一步,安装
(4)桌面出现 MongoDB Compass 的图标,即为成功!下载最新版的MongoDB 不用配置环境变量,所以可以直接使用了!
三、MongoDB的介绍与使用
1、MongoDB 的要素
自带的数据库是要保留的,可以直接访问这些有特殊作用的数据库。
- admin: 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
- local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
- config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。
2、MongoDB 数据库使用鼠标操作
2.1、创建数据库
2.2、删除数据库
2.3、创建表
2.4、删除表
2.5、插入数据
(1)选择要操作的表,进入
(2)编写所需的数据
(3)查看结果,插入成功!
3、MongoDB 数据库使用 shell 命令操作
3.1、创建数据库
如果数据库不存在,则创建数据库,否则切换到指定数据库。
use 数据库名
db
3.2、查看所有数据库
show dbs
3.3、创建表
我们会发现我们创建的数据库并没有显示出来,要想让它显示出来,就需要给该数据库添加一下数据(创建表)
db.数据库名.insertOne({"name":"数据"})
3.4、删除数据库
db.dropDatabase()
3.5、查看表
show collections
3.6、删除表
db.表名.drop();
3.7、插入数据
单条记录:
db.集合名.insertOne({数据})
多条记录:
db.bookInfo.insertMany([{数据1},{数据2}])
3.8、查询数据
- 查询所有数据:
db.表名.find()
- 按条件查询某条:
db.表名.find({条件})
- 查询第一条(支持条件):
db.表名.findOne({条件});
- 限制数量:
db.表名.find().limit(数量);
- 跳过指定数量:
db.表名.find().skip(数量);
- 比较查询:
大于:$gt
小于:$lt
大于等于:$gte
小于等于:$lte
非等于:$ne
例如:查找年龄大于9岁的:
- 查询数量:
db.表名.find().count();
- 排序:
db.表名.find().sort({"字段名":1}); // 1:表示升序,-1:表示降序
- 指定字段返回:
db.表名.find({},{"字段名":0}); // 参数1:返回 0:不返回
3.9、修改数据
单条:
db.表名.update({"条件字段名":"字段值"},{$set:{"要修改的字段名":"修改后的字段值"}});
多条:
例如:原来年龄大于等于10的,全部修改年龄为30
db.users.updateMany({age:{"﹩gte":10}},{﹩set:{age:30}});
3.10、删除数据
单条:
db.表名.deleteOne(条件);
例如: 删除年龄>=10岁的数据
db.users.deleteOne({age:{'$gte':10}});
删除多条:
db.bookInfo.deleteMany({age:{$gte:30}})
例如:删除年龄>=30岁的数据