尼采般地抒情

公告栏

此网站主题为本人手写主题,主题还在开发中……


作者:尼采般地抒情

站点信息

文章数目:240
已运行时间:
目录
  1. MongoDB
    1. 下载及文档
    2. bug:不能开启 mongoDB
    3. 和之前学过的数据库对比
  2. mongoose
    1. 下载及文档
    2. 连接数据库语句
    3. 创建集合(SQL 里面的表)
    4. 增->文档(SQL 行)
    5. 删->文档
    6. 改->文档
    7. 查->文档
    8. mongoose 验证(SQL 约束)
    9. 集合关联
  3. 密码加密 bcrypt

尼采般地抒情

尼采般地抒情

公告栏

此网站主题为本人手写主题,主题还在开发中……


作者:尼采般地抒情

站点信息

文章数目:240
已运行时间:
对node.js支持较好,逻辑和MySQL一样,都是增删改查操作,导入,删除数据库等,都是一样的道理

MongoDB

下载及文档

bug:不能开启 mongoDB

原因:权限不足
~~有个问题:monggoDB数据库导入操作命令不能使用……~~ 用win+x点击 ![image.png](https://cdn.nlark.com/yuque/0/2021/png/1484158/1618147295109-5eac5ca0-1432-40dd-8917-530d76e11669.png#align=left&display=inline&height=198&margin=%5Bobject%20Object%5D&name=image.png&originHeight=396&originWidth=452&size=19182&status=done&style=none&width=226) 然后在输入net start mongoDB即可(在此之前先关闭将start混成stop)

和之前学过的数据库对比

和之前学过的数据库的概念有点出入,不是表、行、列的概念,对比如下
image.png

mongoose

下载及文档

连接数据库语句

在此之前打开数据库

// 链接数据库
const mongoose = require("mongoose");
mongoose
  .connect("mongodb://localhost/blog", {
    useNewUrlParser: true,
    useUnifiedTopology: true,
  })
  .then(() => {
    console.log("数据库连接成功");
  })
  .catch(() => {
    console.log("数据库连接失败");
  });

然后再将这个 js 文件 require 到 appjs 里面使用

创建集合(SQL 里面的表)

在node下面的第三方模块mongoose下面进行相应操作
  • 先利用函数 mongoose 的 schema 函数构建一个规则
  • 然后利用 model 函数创建一个集合并且用上这个规则
// 创建一个集合(相当于sql里面的设定一个表)规则
const couseSchema = new mongoose.Schema({
  name: String,
  authing: String,
  isPublished: Boolean,
});

// 创建一个集合(并且应用上面的规则)
const Course = mongoose.model("Course", couseSchema);

增->文档(SQL 行)

  • create 函数
  • 可以打印相关信息(doc 和 err)
Course.create({ name: "名字", authing: "作者", isPublished: true })
  .then((doc) => console.log(doc))
  .catch((err) => console.log(err));

Course.create(
  { name: "名字2", authing: "作者2", isPublished: true },
  (err, doc) => {
    console.log(err);
    console.log(doc);
  }
);
  • 也可以创建一个对象赋值给一个变量,然后该变量利用函数 save 即可保存到数据库

删->文档

image.png

改->文档

image.png

查->文档

  • 查询函数 findOne:返回第一个文档
  • 查询函数 find:查询所有包含条件的数据

image.png

mongoose 验证(SQL 约束)

required: true 必传字段
minlength:3 字符串最小长度
maxlength: 20 字符串最大长度
min: 2 数值最小为 2
max: 100 数值最大为 100
enum: [‘html’, ‘css’, ‘javascript’, ‘node.js’]
trim: true 去除字符串两边的空格
validate: 自定义验证器
default: 默认值

获取错误信息:error.errors[‘字段名称’].message

集合关联

相当于声明两个表的各自的字段在逻辑上是一样的,且存在形式也是一样的
image.png

密码加密 bcrypt

只能加密不能解密
image.png

博客内容遵循: 署名-非商业性使用-禁止演绎 4.0 国际(CC BY-NC-ND 4.0)

本文永久链接: https://www.wztlink1013.com/blog/nwt63v/

编辑: 部署: 订阅:

评论区

Twikoo 转换 utterances

最新评论

Loading...