1. mongodb 的驱动就叫做 mongodb
  2. Mongoose 为模型提供了一种直接的,基于 scheme 结构去定义你的数据模型;它内置数据验证,查询构建,业务逻辑钩子等,开箱即用;
  3. mongoose 官网
  4. mongoose 民间中文网

schema 和 model

  1. schema 结构:描述某种数据中有哪些字段、每个字段是什么类型、每个字段的约束;

  2. model 模型:对应数据库中集合的文档;

创建连接

const mongoose = require("mongoose");
mongoose.set("useCreateIndex", true);

mongoose.connect("mongodb://localhost/test3", {
  useNewUrlParser: true,
  useUnifiedTopology: true,
});

mongoose.connection.on("open", () => {
  console.log("连接已打开");
});

模型定义

用户信息

  1. model 模型

    {
      loginId:"账号",
      loginPwd:"密码",
      name:"姓名",
      loves: ["爱好"],
      address: {
        province: "省份",
        city: "城市"
      }
    }
    
  2. schema 结构

    // 1. 定义 User Schema
    const mongoose = require("mongoose");
    const userSchema = new mongoose.Schema({
      // Schema 的配置
      loginId: {
        type: String, // 类型是字符串
        required: true, // 必填
        trim: true,
        minlength: 6,
        maxlength: 18,
    
        index: true, // 将该字段设置为索引
        unique: true, // 特殊索引,唯一索引
      },
      loginPwd: {
        type: String, // 类型是字符串
        required: true, // 必填
        trim: true,
        minlength: 6,
        maxlength: 18,
        select: false, // 默认情况下,查询用户时不会查询该字段
      },
      name: {
        type: String, // 类型是字符串
        required: true, // 必填
        trim: true,
        minlength: 2,
        maxlength: 10,
      },
      loves: {
        type: [String], // 类型是一个数组,数组每一项是一个字符串
        required: true,
        default: [], // 默认值为一个空数组
      },
      address: {
        type: {
          province: {
            type: String,
            required: true,
          },
          city: {
            type: String,
            required: true,
          },
        },
        required: true,
      },
    });
    
    // 2. 通过User Schema定义模型,最终导出模型
    module.exports = mongoose.model("User", userSchema);
    

用户操作

  1. model 模型

    {
      operation: "登录",
      time: "日期",
      userid: "用户 id",
      extraInfo: "任意对象", // 操作额外的信息
      address: { // 操作的地址
        province: "省份",
        city: "城市"
      }
    }
    
  2. schema 结构

    // 1. 定义 Operation Schema
    const mongoose = require("mongoose");
    const operationSchema = new mongoose.Schema({
    // Schema 的配置
    operation: {
      type: String, // 类型是字符串
      required: true,
      enum: ["登录", "注销", "阅读文章"],
    },
    time: {
      type: Date,
      default: Date.now,
    },
    userid: {
      type: mongoose.Types.ObjectId,
      required: true,
    },
    extraInfo: {
      type: mongoose.Schema.Types.Mixed, //任意类型
    },
    address: {
      type: {
        province: {
          type: String,
          required: true,
        },
        city: {
          type: String,
          required: true,
        },
      },
      required: true,
    },
    });
    
    // 2. 通过 Operation Schema 定义模型,最终导出模型
    module.exports = mongoose.model("Operation", operationSchema);
    
打赏作者
您的打赏是我前进的动力
微信
支付宝
评论

中午好👏🏻,我是 ✍🏻   疯狂 codding 中...

粽子

这有关于前端开发的技术文档和你分享。

相信你可以在这里找到对你有用的知识和教程。

了解更多

目录

  1. 1. schema 和 model
  2. 2. 创建连接
  3. 3. 模型定义
    1. 3.1. 用户信息
    2. 3.2. 用户操作