MongoDB(文档型数据库)
关系型数据库和非关系型数据库
关系型数据库
-
关系型数据库都需要通过
sql
语言来操作,表与表之间可以建立联系 -
关系型数据库在操作前需要设计表结构
-
数据表支持约束…
非关系型数据库
-
非关系型数据库没有表的概念,严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等。
-
格式灵活,存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
MongoDB 基本概念
-
可以有多个数据库
-
一个数据库可以有多个集合(类似于表)
-
一个集合可以有多个文档(类似于表记录)
-
文档结构灵活,没有限制
MongoDB 的安装和配置
-
下载安装包,目前最新版为解压版(不会配置,找百度)
以 3.4.10 为例(安装版)
-
基本上一路 next,可以自定义安装位置。
-
配置环境变量,将安装路径(以实际情况而定):
D:\Develop\MongoDB\Server\3.4\bin
添加到 Path 环境变量中。 -
打开命令行窗口输入
mongod --version
命令,显示版本信息则表示配置成功。
MongoDB 的启动和关闭
启动:
-
mongodb 默认使用执行
mongod
命令所处盘符根目录下的 /data/db/ 作为自己的数据存储目录。所以在执行
mongod
命令之前需要手动创建一个 /data/db 目录。 -
创建之后执行
mongod
命令启动 MongoDB(在创建目录的盘符下执行)。 -
存储目录也可更改
# <newPath> 新的目录 mongod --dbpath=<newPath>
关闭:
- 在开启服务的命令窗口按 ctrl+c 即可;或者直接关闭命令窗口。
MongoDB 的连接和退出连接
连接:
- 再打开一个命令窗口(之前启动服务的窗口不能关闭),输入
mongo
命令,该命令会默认连接本机的 MongoDB 服务。
退出连接:
- 在连接的命令窗口输入
exit
命令即可退出连接。
MongoDB 的基本命令
显示所有数据库(显示系统数据库和插入数据的数据库)
show dbs
查看当前操作的数据库(未使用时,默认是 test)
db
使用指定的数据库(如果数据库不存在则会创建)
-
use DatabaseName
DatabaseName 数据库名称
删除数据库(删除当前使用的数据库)
db.dropDatabase()
创建集合
-
db.createCollection(name, option)
name 集合名称;potion 可选,设置集合大小、索引等
删除集合
-
db.CollectionName.drop()
CollectionName 集合名称
向集合中插入数据(插入文档)
-
db.CollectionName.insertOne(document)
插入单个文档// 向集合中插入一条文档 db.students.insertOne({"name":"小小"})
-
db.CollectionName.insertMany(documents)
插入多个文档db.students.insertMany([{"name": "大熊"},{"name": "莲妹"}, {"name": "香香"}])
-
db.CollectionName.insert()
插入一个或多个文档// 插入单个 db.students.insert({"name": "小小"}) // 插入多个 db.students.insert([{"name": "大熊"},{"name": "莲妹"}, {"name": "香香"}])
删除文档
-
db.CollectionName.deleteOne(filter)
删除单个匹配文档filter 过滤条件,值为一个对象
db.students.deleteOne({name: "大熊"})
-
db.CollectionName.deleteMany(filter)
删除所有匹配的文档db.students.deleteMany({name: "小熊"})
查询集合中的数据(查询文档)
-
db.CollectionName.find(query, projection)
query 可选,使用查询操作符指定查询条件;projection :可选,使用投影操作符指定返回的键
向数据库中导入数据文件
-
mongoimport -d DatabaseName -c CollectionName --file path
DatabaseName 数据库名称;CollectionName 数据库中需要导入数据的集合的名称;path 要导入的数据文件的路径