基本定义
Schema(模式对象)
——Schema 对象定义约束了数据库中的文档结构
Model(模型)
——Model 对象作为集合中的所有文档的表示,相当于MongoDB中的collection,它的每一个实例就是一个document文档
Document(文档)
——Document表示集合中的具体文档,相当于collection中的一个具体文档
关系:Schema生成Model,Model创造Document
结构
Mongoose 中的一切都始于结构。每个结构都映射到一个 MongoDB 集合,并定义该集合中文档的形状。
以下示例定义了基本的结构:
import mongoose from 'mongoose';
const { Schema } = mongoose;
const blogSchema = new Schema({
title: String, // String is shorthand for {type: String}
author: String,
body: String,
comments: [{ body: String, date: Date }],
date: { type: Date, default: Date.now },
hidden: Boolean,
meta: {
votes: Number,
favs: Number
}
});
定义完成Scheme后,你可以使用add方法添加字段
什么是 SchemaType?
你可以将 Mongoose 结构视为 Mongoose 模型的配置对象。SchemaType 是单个属性的配置对象。SchemaType 说明给定路径应具有什么类型、是否有任何 getter/setter 以及哪些值对该路径有效。
以下是 Mongoose 中所有有效的 SchemaType
文档与模型
文档 和 模型 是 Mongoose 中不同的类。Model 类是 Document 类的子类。当你使用 模型构造函数 时,你会创建一个新文档。
const MyModel = mongoose.model('Test', new Schema({ name: String }));
const doc = new MyModel();
doc instanceof MyModel; // true
doc instanceof mongoose.Model; // true
doc instanceof mongoose.Document; // true