1、介绍:
MongoDB的数据模型是面向文档的(类似于JSON的结构),简单的理解MongoDB数据库中存储的是各种各样的JSON(BSON 二进制的JSON)
2、MongoDB的安装
(1)默认安装路径C:\Program Files\MongoDB\Server\3.6\
(2)配置环境变量path,将“C:\Program Files\MongoDB\Server\3.6\bin”添加到path路径
(3)在C盘根目录创建一个文件夹data,在data中创建一个文件夹叫db 【其中db为默认的数据库的目录,之后创建的数据库的信息都会存放到该db目录下】
(4)打开cmd命令行窗口,输入mongod 启动mongodb服务器
显示:
,
表示服务器启动成功!(最小化该窗口)
(5)再打开一个cmd窗口,输入mongo,连接mongodb数据库
显示:
,则成功!
【注1:默认会在C:\data\db中创建数据库,但是若不想在C盘中创建数据库,可以在D盘中新建一个data文件夹,在里面再新建一个db文件夹,然后使用:mongod --dbpath D:\data\db --port 27017 就可以了】(默认的端口号是27017)
【注2:为了不占用C盘空间,则每次使用:mongod --dbpath D:\data\db --port 27017 即可】
此时在网站上显示:
3、数据库(database)
【我是利用下述的2步:先启动服务器,再连接服务器】
(3-1)数据库的服务器:服务器用来保存数据
mongod用来启动服务器 【注:该cmd窗口打开就不要关闭,因为服务器需要一直启动】
(3-2)数据库的客户端:客户端用来操作服务器,对数据进行增删改查的操作
mongo用来启动客户端
【所以:必须要先启动服务器,然后客户端去连接服务器(上述的两个操作需要在不同的cmd中进行)】
注:可以将MongoDB设置为系统服务,可以自动在后台启动,不需要每次都手动启动 【可有可无,不是必须的】
4、MongoDB中三个重要的概念
- 数据库(database):数据库是一个仓库,在仓库中可以存放集合
- 集合(collection):集合类似于数组,在集合中可以存放文档
- 文档(document):文档是数据库中最小单位,用于存储和操作的内容都是文档
【注1:上述安装的是数据库服务器,一个数据库服务器可以有多个数据库,一个数据库中可以有多个集合,一个集合可以有多个文档】
【注2:进行增删改查都是基于“文档”】
【注3:在MongoDB中,数据库和集合都不需要手动创建!当我们创建文档时,如果文档所在的集合或数据库不存在会自动创建数据库和集合】
【一个数据库】
5、MongoDB的基本指令
(1)show databases 或者 show dbs 显示当前的所有数据库
(2)use 数据库名 进入到指定的数据库中 【不需要是否存在,就可以直接使用,当向数据库中插入数据时,该数据库才真正建立】
(3)db 表示当前所处的数据库
(4)show collections 显示数据库中所有的集合
(5)对数据库简单的操作
db. <collection>.insert(doc) 表示:向集合中插入一个文档 【注:此处的collection应该改为自己设置的名字】
例子:向test数据库中的stus集合中插入一个新的学生对象{name:”psy”,age:18,gender:”girl”}
db.stus.insert({name:”psy”,age:18,gender:”girl”}) 【因为一般use数据库,此时db就是数据库】
db.<collection>.find() 查询当前集合中的所有文档
6、关系型数据库与非关系型数据库的名词比较:【关系型数据库:二维表;非关系型数据库:键值对】
SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table joins |
| 表连接,MongoDB不支持 |
primary key | primary key | 主键,MongoDB自动将_id字段设置为主键 |
7、基础操作【开启MongoDB】
开启MongoDB基础操作:
(1)首先打开两个cmd,
(2)第一个cmd先启动服务器mongod --dbpath D:\data\db --port 20717,
(3)第二个cmd再连接服务器mongo,出现>,连接成功!
则在该cmd窗口(第二个cmd)进行操作
8、MongoDB与Python的交互
(1)引入包pymongo from pymongo import *
(2)利用类MongoClient建立连接并创建客户端
- 无安全认证:client=MongoClient('mongodb://localhost:27017')
- 有安全认证:client=MongoClient('mongodb://用户名:密码@localhost:27017/数据库名称')
(3)类database获取数据库xk db=client.xk
(4)类collection
主要方法:insert_one insert_many update_one update_many delete_one delete_many find_one find_many
(5)举例:
from pymongo import *#获取客户端,建立连接client=MongoClient('mongodb://yhm:pwd@localhost:27017/sjk') #yhm用户名,pwd密码,sjk数据库db=client.sjk #切换数据库
stu=db.stu #获取集合
s1=stu.insert_one({'name':'潘锁艳'}) #增加
stu.update_one({'name':'潘锁艳'},{'$set':{'name':'abc'}}) #修改
stu.delete_one({'name':'abc'}) #删除
cursor=stu.find({'age':{'$gt':20}}) #查询 找出年纪大于20的记录
for s in cursor:
print(s['name'])