- mongodb 的驱动就叫做
mongodb
- Mongoose 为模型提供了一种直接的,基于 scheme 结构去定义你的数据模型;它内置数据验证,查询构建,业务逻辑钩子等,开箱即用;
- mongoose 官网
- mongoose 民间中文网
schema 和 model
schema 结构
:描述某种数据中有哪些字段、每个字段是什么类型、每个字段的约束;
model 模型
:对应数据库中集合的文档;
创建连接
const mongoose = require("mongoose");
mongoose.set("useCreateIndex", true);
mongoose.connect("mongodb://localhost/test3", {
useNewUrlParser: true,
useUnifiedTopology: true,
});
mongoose.connection.on("open", () => {
console.log("连接已打开");
});
模型定义
用户信息
-
model 模型
{ loginId:"账号", loginPwd:"密码", name:"姓名", loves: ["爱好"], address: { province: "省份", city: "城市" } }
-
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);
用户操作
-
model 模型
{ operation: "登录", time: "日期", userid: "用户 id", extraInfo: "任意对象", // 操作额外的信息 address: { // 操作的地址 province: "省份", city: "城市" } }
-
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);
MongoDB👉 mongo Shell
上一篇