MongoDB使用
一、 什么是MongoDB
-
存储数据的软件 可以对数据进行有序的管理
-
动态网站的数据都是存储在数据库当中的
-
数据库可以用来持久储存客户端通过表单数据收集到的用户信息
-
数据库软件也可以对数据进行高效的管理
二、 MongoDB安装
- 下载地址 : https://www.mongodb.com/download-center/community
- 这里还需要下载 MongoDB Compass (可以对数据进行可视化操做)
三 、数据库相关概念
- 一个数据中可以包含那多个数据仓库,每个数据仓库中包含多个数据集合,没饿过数据集合可以包含多个文档
术语 | 解释说明 |
---|---|
database | 数据库,mongnDB数据库软件中可以建立多个数据库 |
collection | 集合·,一组数据的集合,可以理解为javaScript中的数组 |
document | 文档,一条具体的数据,可以理解为javaScript中的对象 |
fileld | 字段,文档当中的属性名称,可以理解为javaScript中的对象属性 |
四、数据库环境搭建
- 使用Node.js操做数据库MongoDB需要依赖第三方包mongoose
- 使用 npm install mongoose 进行下载安装
五、启动MongoDB
- 启动 在命令行工具使用net start mongodb
- 关闭 在命令行工具使用net stop mongodb
- 需要注意的是,如果发生系统错误 5,使用管理员权限打开cmd即可
六、进行数据库连接
-
使用mongoose提供的connect方法就可以连接数据库(这个方法返回一个promise对象)
-
mongoose.connect('mongodb://localhost/playground') // playground为地址 .then(() => { console.log('数据库连接成功') }) .catch((err) => { console.log(err, "数据库连接失败") })
-
引入mongoose
-
const mongoose = require('mongoose') mongoose.connect('mongodb://localhost/playground',{ useNewUrlParser: true ,useUnifiedTopology: true}) .then(() => { console.log('数据库连接成功') }) .catch(err => { console.log(err, '数据库连接失败') }) //在终端运行这个文件 会显示数据库连接成功
-
七、MongoDB数据增删改查操做
1. 创建集合
创建集合分为2步,一是对集合设定规则,二是创建集合,创建excommunicate构造函数的实力即可创建集合
//设定集合规则
const courseSchema = new mongoose.Schema({
name: String,
author: String,
isPublished: Boolean // //代表当前是否处于发布状态
});
//创建集合并应用规则
const Course = mongoose.model('Course', courseSchema);
2.创建文档 (实际上向集合中插入数据)
-
分为2步
- 创建集合实例
- 调用实力对象下的save方法将数据保存到数据库中
//创建文档 (向集合中插入数据) const course = new Course({ name: 'Node.js学习', author: 'Dm', isPublished: true }) //将数据保存到数据库中 course.save()
-
终端执行该文件,打开数据库软件 可以看到这样的画面
-
第二种方法创建文档
-
Course.create({name: 'JavaScript', author: '张三', isPublished: true}) .then(result => { console.log(result) }) .catch(err => { console.log(err) })
-
Course.create({name: 'JavaScript', author: '张三', isPublished: true}, (err, res) => { console.log(err) console.log(res) })
完整代码
//引入mongoose const mongoose = require('mongoose') //连接数据库 mongoose.connect('mongodb://localhost/playground',{ useNewUrlParser: true ,useUnifiedTopology: true}) .then(() => { console.log('数据库连接成功') }) .catch(err => { console.log(err, '数据库连接失败') }) //设定集合规则 const courseSchema = new mongoose.Schema({ name: String, author: String, isPublished: Boolean //代表当前是否处于发布状态 }); //创建集合并应用规则 const Course = mongoose.model('Course', courseSchema); // //创建文档 (向集合中插入数据) // const course = new Course({ // name: 'Node.js学习', // author: 'Dm', // isPublished: true // }) // //将数据保存到数据库中 // course.save() Course.create({name: 'JavaScript', author: '张三', isPublished: true}) .then(result => { console.log(result) }) .catch(err => { console.log(err) })
八、MongoDB导入数据操做
-
找到安装MOngoDB的安装目录,找到mongoimport.exe 复制路劲C:\Program Files\MongoDB\Server\4.2\bin,然后把这个目录添加到系统的环境变量当中
-
// mongoimport -d 数据库名称 -c 集合名称 --file 要导入的数据文件 mongoimport -d playground -c users --file ./data.json //终端显示这个 表示导入成功 E:\node_text\database> mongoimport -d playground -cusers --file ./data.json 2020-05-23T23:32:38.153+0800 connected to: mongodb://localhost/ 2020-05-23T23:32:38.878+0800 1 document(s) imported successfully. 0 document(s) failed to import. E:\node_text\database>