Mongoose 入门笔记

Mongoose 是什么

MongoDB.js 是一个官方提供的访问 MongoDB 的 js 库。Mongoose.js 是在 MongoDB.js 基础上的一个封装。后面 Mongoose 即指谓 Mongoose.js。

基本概念

Schema

Schema 是一个与 MongoDB 里的某个 Collection 对应并且规定了 Collection 里 Document 的 shape 的东西。在 Mongoose 里,一切都始于 Schema。一个 schema 实例由 Schema 构造函数创建:

const mongoose = require('mongoose')

const schema = new mongoose.Schema({
    field1: SchemaType,
    field2: SchemaType
    // ...
})

SchemaType

SchemaType 是一个配置 field 的对象,它规定了一个 field 值的 type、getter/setter、对这个 field 进行赋值的时候的 validator 等等。type 包括 String、Number、Date、Buffer、Boolean、Mixed、ObjectId、Array、Decimal128、Map,也可以通过 plugin 自定义。一个具体的 schemaType 基本可以表示为:

const schemaType = {
    type: String,
    ...SchemaTypeOptions
}
// 当没有 SchemaTypeOptions 时与下面等价
const schemaType1 = String

Model

调用 mongoose.model(modelName, schema) 得到的结果就是一个 model,所有对 collection 的操作都是基于 model 执行。

const schema = new mongoose.Schema({ name: String, size: String });
const Tank = mongoose.model('Tank', schema);

上述代码定义了一个 schema,然后基于这个 schema 生成了一个 model:Tank,Tank 对应 MongoDB 里的一个 collection:tanks(Tank 的小写复数形式)。

使用 Mongoose

const mongoose = require('mongoose')

// option 既可以写在第一个参数的 query 里,也可以放在第二个参数
mongoose.connect('mongodb://username:password@host:port/database?options...', options)
const db = mongoose.connection

// 对数据库的访问操作写到 callback 里
db.on('connected', callback)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Mongodb 配置选项 通常在mongod.conf中 配置文件 设置了配置文件后启动时以自定义的配置文件启动:...
    AkaTBS阅读 1,105评论 0 6
  • 参考深入浅出mongoose 连接mongoose mongoose连接数据库有两种方式第一种: 第二种: mon...
    bacbcc94613b阅读 12,384评论 1 27
  • Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具 mongoose安装 np...
    apacky阅读 631评论 0 0
  • 原文地址 本文简单的介绍了数据库,以及如何在 Node/Express 中应用他们。之后展示如何使用Mongoos...
    前端幼儿班阅读 5,221评论 1 5
  • 前段时间,父亲表示想让我转学,刚开始自己对于转学生的印象从来都是受欺负,被排斥。所以,听到转学两个字,当即就哭出来...
    荒诞的初三芽阅读 339评论 1 0