mongoose基本使用

133 阅读1分钟

基本定义

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