数据库概念和环境搭建
什么是数据库
数据库即存储数据的仓库,可以将数据进行有序的分门别类的存储。它是独立于语言之外的软件,可以通过API去操作它。
- 常见的数据库软件有:mysql、mongoDB、oracle。
MongoDB数据库下载安装
链接:https://pan.baidu.com/s/1Yikc-vgqCXmmWd1SDIshAw
提取码:eml6
复制这段内容后打开百度网盘手机App,操作更方便哦
MongoDB可视化软件
MongoDB可视化操作软件,是使用图形界面操作数据库的一种方式。
数据库相关概念
在一个数据库软件中可以包含多个数据仓库,在每个数据仓库中可以包含多个数据集合,每个数据集合中可以包含多条文档(具体的数据)。
Mongoose第三方包
使用Node.js操作MongoDB数据库需要依赖Node.js第三方包mongoose
使用npm install mongoose
命令下载
启动和关闭MongoDB
启动
net start mongoDB
关闭
net stop mongoDB
连接数据库 (★★★★★ )
使用mongoose提供的
connect
方法即可连接数据库。
//首先引入mongoose
const mongoose = require('mongoose')
//数据库地址/数据库名称
mongoose.connect('mongodb://localhost/playground', {
useNewUrlParser: true, useUnifiedTopology: true })
.then(() => console.log('数据库连接成功'))
.catch(err => console.log('数据库连接失败', err));
创建数据库
在MongoDB中不需要显式创建数据库
,如果正在使用的数据库不存在,MongoDB会自动创建
。
MongoDB增删改查
创建集合
创建集合分为两步,
1.是对对集合设定规则
2.是创建集合
,创建mongoose.Schema({});构造函数的实例即可创建集合。
// 一、连接数据库
//首先引入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,
isPublishhed: Boolean
})
// 使用规则创建集合
// 1.集合名称
// 2.集合规则
const Course = mongoose.model('Course', courseSchema);
//当前集合的构造函数
现在我们运行文件发现并没有发现有这个数据库
这是因为这里没有插入数据
创建文档 - 插入数据
创建文档实际上就是向集合中插入数据
。
分为两步:
- 创建集合实例。
- 调用实例对象下的save方法将数据保存到数据库中。
// 创建集合实例
const course = new Course({
name: 'Node.js course',
author: '123',
tags: ['a', 'b'],
isPublished: true
});
// 将数据保存到数据库中
course.save();
实际代码
// 一、连接数据库
//首先引入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,
isPublishhed: Boolean
})
// 使用规则创建集合
// 1.集合名称
// 2.集合规则
const Course = mongoose.model('Course', courseSchema);
//当前集合的构造函数
// 三.插入数据
// 创建集合实例
const course = new Course({
name: 'Node.js',
author: 'zhangsan',
tags: ['node', 'course'],//没有在集合规则里定义tags 所以数据库没有这个属性
isPublished: true
});
// 调用 save方法 将数据保存到数据库中
course.save();
方法二 create()
集合实例名称.create({
'要插入的文档对象'},(err,doc)=>{
'回调函数'})
通过回调函数
Course.create({
name: 'JavaScript', author: 'zhangsan', isPublish: true}, (err, doc) => {
// 错误对象
console.log(err)
// 当前插入的文档
console.log(doc)
});
通过Promis对象
Course.create({
name: 'JavaScript', author: '张三', isPublish: true})
.then(doc => console.log(doc))
.catch(err => console.log(err))
mongoDB数据库导入数据
mongoimport –d 数据库名称 –c 集合名称 –file
要导入的数据文件
找到mongodb数据库的安装目录,将安装目录下的bin目录放置在环境变量中。
// .json文件
{
"_id":{
"$oid":"5c09f1e5aeb04b22f8460965"},"name":"张三","age":20,"hobbies":["足球","篮球","橄榄球"],"email":"zhangsan@itcast.cn","password":"123456"}
{
"_id":{
"$oid":"5c09f236aeb04b22f8460967"},"name":"李四","age":10,"hobbies":["足球","篮球"],"email":"lisi@itcast.cn","password":"654321"}
{
"_id":{
"$oid":"5c09f267aeb04b22f8460968"},"name":"王五","age":25,"hobbies":["敲代码"],"email":"wangwu@itcast.cn","password":"123456"}
{
"_id":{
"$oid":"5c09f294aeb04b22f8460969"},"name":"赵六","age":50,"hobbies":["吃饭","睡觉","打豆豆"],"email":"zhaoliu@itcast.cn","password":"123456"}
{
"_id":{
"$oid":"5c09f2b6aeb04b22f846096a"},"name":"王二麻子","age":