mongodb (大地老师)

mongodb (大地老师)

win系统下的安装

  1. Mongodb官网下载压缩版

  2. 解压到一个目录下面

    1. 然后新建一个data空文件夹

    2. 新建一个log文件

  3. 进入bin目录下 然后复制路径

  4. 系统环境变量里配置

一,数据库使用

开启mongodb服务:要管理数据库,必须先开启服务,开启服务使用mongod --dbpath F:\mongodb 后面文件脱到这里面mongo

image-20201008070732555

注意:浏览器上输入localhost:27017测试是不是Mongodb服务器开启成功

image-20201009175444148

这个就说明开启成功了

管理mongodb数据库:mongo (一定要在新的CMD中输入)

这样就连接到本地的数据库

查看你所有的数据库

show dbs

二,创建数据库

image-20201008071209589

mongodb

MongoDB数据集合的操作 相当于MySQL的数据库

//Collections 集合
show dbs //可以预览所有的数据表
use jiahua  //进入jiahua数据库 如果没有自动创建一个 创建数据库不是表
show collections   //查看有没有数据表
db.createCollection("users") //创建一个表
show collections  //查看刚才那个表是否新建成功
show users.renamecollection("staff") //重命名表名
show collections
db.staff.drop()  //删除表
db.dropDatabase()//删除数据库
show dbs

//Document文档
mongo 
use jiahua
show collections
db.createCollection("post");
db.post.insert(
{
    title:'我的第一个博客',
    content:'我的博客开始写了'
}
);
show collections
db.post.find() //查询刚才保存的数据
db.post.count()//查看有多少记录
db.post.remove({}) //删除刚刚我们建立的所有的数据

使用数据库,创建数据库

use student

创建完成后你在use student的话进入student数据集合里面

image-20201008071711023

插入文档

插入单个数据

//student集合里插入单个数据
db.student.insert({name:'hello11',age:188888})
//查询数据库
db.student.find()

插入多个数据

插入多个数据库的话 需要加个[]就是数组
db.student.insert([
{name:'dongzhou',age:7777,gander:'women'}
{name:'dongzhou111',age:7777,gander:'women'}
{name:'dongzhou2222',age:7777,gander:'women'}
{name:'dongzhou333',age:7777,gander:'women'}
])

查询文档

db.collection.find()
	- find()用来查询集合中所有的符合条件的文档
	-find()可以接受一个对象作为条件参数

image-20201009183843420

image-20201009184135903

修改文档

db.collection.update(查询条件,新对象)
db.student.update({name:'jiahua'},{age:28});

删除文档

image-20201009184943407

mongoose

image-20201009185156302

image-20201009185333325

image-20201009190222069

image-20201009192426885

image-20201009192441780

1.下载安装

新建一个目录下面
npm inti --yes
cnpm install mongoose --save

2.连接数据库

3、在项目中引入mongoose
    const mongoose = require('mongoose');
 4, 连接MongoDB数据库
  mongoose.connect('mongodb://数据库的IP地址:端口号/数据库名')
      -如果端口号是默认端口号(27017)刺可以省路不写

      -监听MongoDB数据库的连接状态
-在mongoose对象中,有一个属性叫做connection,该对象表示的就是数据库连接
通过监视读对象的状态,可以来监听数摇库的连接与断开

下面是查看是否链接成功  达不是必须写的
    数据库连接成功额事件
    mongoose.connction.once('open',function(){})
    数据库断开的事件
    mongoose.connction.once('close',function(){})
var  mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1/student',{useMongoClient:true});

mongoose.connection.once('open',function(){
	console.log('OK');
});

3.操作数据库

//将mongoose.Schema赋值给一个对象
var Schema = mongoose.Schema;

//创建Schema(模式)对象
//Schema仅仅是数据库的约束

var zhuomaSchema = new Schema({
	name:String,
	age:Number,
	gender:{
		type:String,
		default:'female'
	},
	address:String
})

//通过schema来创建Mode1
//Model代表的是数据库中的集合,通过Model才能对数据库进行操作
//mongoose.model(modelName,schema):

var ZhuomaModel = mongoose.model('zhuoma',zhuomaSchema);

//这时候你还没有创建数据库

//向数据库中插入一个文档
//ZhuomaModel.create(doc,function(err){});

ZhuomaModel.create({

	name:'孙悟空',
	age:18,
	gender:'male',
	address:'花果山'
},function(err){
	if (!err) {
		console.log('数据插入成功');
	}
})

4.model使用方法

有了Model,我们就可以来对数据库进行曾删改查的操作了

image-20201010101749090

1.插入数据
ZhuomaModel.create([
{
	name:'嘉华哦对那个自己哦',
	age:787,
	address:'藏族',
},
{
	name:'攒足让你卡',
	age:8787878,
	gender:'male',
	address:'西藏'
}],function(err){
	if (!err) {
		console.log('插入车功能额');
	}
})
2.查询数据

image-20201010101730170

ZhuomaModel.find({name:'孙悟空'},function(err,docs){
 if (!err) {
 	console.log(docs)
 }
})
3.修改数据

image-20201010103604009


ZhuomaModel.updateOne({name:'孙悟空'},{ $set:{age:88888}},function(err){
	if (!err) {
		console.log('cehgngogn')
	}
})
4.删除文档

image-20201010105001360

ZhuomaModel.remove({name:'孙悟空'},function(err){
	if (!err) {
		console.log('removeOK');
	}
});

5.Document使用方法

image-20201010110624842

image-20201010111806377

Mac i MongoDB

下载地址:https://www.mongodb.com/try/download/community

然后文件解压后放在一个目录下面 我放》文档》IT下面

  1. 启动mongodb这个程序
  2. 进入到mongodb4.2.1这个目录下面注意这个下面还有两个目录 一个是新建的db 文件夹 一个是mongodb正真的数据库
  3. 继续cd 到 bin目录下面
  4. 输入 ./mongod --dbpath 后面放那个db的路径就启动成了
  5. 验证是否成功 浏览器输入127.0.0.1:27017

egg.js

1、安装egg.js

$ mkdir egg-example && cd egg-example
$ npm init egg --type=simple
// 这里就可以一直按y 就可以了
$ npm i
//我在F盘根目录下面新建一个eggDome的文件
//然后cd 到eggDome

启动项目:

$ npm run dev
$ open http://localhost:7001

2、路由和控制器

image-20201013110125471

image-20201013110132202

2、我们要最关心的两个文件

image-20201013112211520

  1. 一般配置都要放在config下面
  2. 比如说插件那些配置image-20201013112341193
  3. 然后一些默认的配置在这里面配置image-20201013112423880

什么是MVC

image-20201013113151658

控制器(controller)

app/controller目录下面实现Controller

'use strict';

const Controller = require('egg').Controller;

class HomeController extends Controller {
  async index() {
    const { ctx } = this;
    ctx.body = 'jiahuadongzosdfgdhdfu';
  }
}

module.exports = HomeController;

服务(service)

使用插件egg-mongoose连接数据库

下载

cnpm i egg-mongoose -S

配置

config/plugin.js

module.exports = {
  static: {
    enable: true,
    package:'egg-mongoose'
  }
};

配置数据库

config.default.js

config.middleware = [];
  //这个下面配置数据库哦
  config.mongoose = {
    url:'mongodb://127.0.0.1:27017/sdutent',
    options:{
      useUnifiedTopology:true,
      useCreateIndex:true
    }
  }

然后app下面新建一个model文件夹> 里面在新建一个user.js

这是配置之后第一个要做的事情

module.exports = app => {
    const mongoose = app.mongoose;
    const UserSchema = new mongoose.Schema({
	//这里面就开始写数据字段
	//跟Mongodb数据库的时候一样
    })
    return mongoose.module('User',UserSchema)
}
module.exports = app => {
    const mongoose = app.mongoose;
    const UserSchema = new mongoose.Schema({
        UserName:{
            type:String,
            unique:true,
            required:true
        },
        password:{
            type:String,
            required:true,
        },
        //头像
        avatar:{
            type:String,
            default: 'https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=1858570547,3506631316&fm=26&gp=0.jpg'
         },
         //创建当前的时间
         creataAt:{
             type:'Date',
             default:Date.now
         }

    })
    return mongoose.module('User',UserSchema)
}

//这是一个完整的数据库定义

然后这个model层要用service来管理

router里面填写对应的接口

router文件夹

创建router

router.post('/api/user',controller.user.create)

创建controller 下面user.js方法

请求数据的时候 后端经常出现这样一个错误csrf

解决方法

config.default.js

  const config = exports = {};
//这个下面写几行代码就可以了

  config.security = {
    csrf:{
      enble:false
    }
  }

MySQL安装

安装地址

image-20201017230134329

2、解压到一个文件夹

2、配置

F:\MySQL\mysql-8.0.21-winx64目录下面新建一个文本文件

复制下面的保存的时候后缀名一定要ini 我的叫my.ANSI

# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=F:\MySQL\mysql-8.0.21-winx64
# 设置mysql数据库的数据的存放目录
datadir=F:\MySQL\mysql-8.0.21-winx64\\data   
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
2.1 配置系统变量

image-20201017231252643

2.2 命令行必须要管理员身份进行运行

然后进入到bin目录下面

安装数据库

输入如下命令

mysqld --initialize --console

 root@localhost: YAayUTqlc4/D
 后面的是我的密码待会要用到
 

安装

mysqld -install mysql //后面的是数据库名字

image-20201017233010795

出现这个说明已经成功了

启动服务器

net start myswl

然后登陆数据库 命令行中

mysql -u root -p然后下面显示pqssord 输入上面的密码就可以了

image-20201017233705257

这样表示密码输入正确

下面如何更改默认密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

image-20201017234200794

这样表示密码修改成功

4.如何关闭服务器

同样 新建一个命令行 管理员

进入斌bin目录下面

net stop myswl

MyQSL 数据库连接客户端

打开Navicat Premium 客户端

  1. 点击连接 mysql 然后起一个名字 下面输入密码
  2. 即可连接

image-20201018020149805

1.建表

image-20201018020557174

image-20201018020624186

这样就user表就完成了

image-20201018020645629

1、第一步:定义路由

router.resources('user','/api/user',controller.user);

2、第二步:controller >定义user

​ 我们要做的是查询user表里的用户

const { Controller } = require('egg');
class UserController extends Controller {

    async index(){
        const { ctx,service } = this;
        let users = await service.user.list();
        ctx.body = users;
    }
}
module.exports=  UserController;

3、第三步:创建service


const { Service } = require('egg');

class UserService extends Service {
  async list() {
      const result = await this.app.mysql.select('user');
        return result;
    }
}
module.exports = UserService;

安装egg-mysql

cnpm i egg-mysql -S

1.安装好egg-mysql后

配置plugin.js

exports.mysql = {
  package:'egg-mysql',
  enable:true
}

配置config.default.js

  userConfig.security = {
    csrf: false,
  }; 
userConfig.mysql = {
    client: {
      host:'localhost',
      port:3306,
      user:'root',
      password:123456,
      database:'cms'
    },
  };

egg.js安装方法

cnpm i egg-init -g

image-20201018022300749

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值