共计 2481 个字符,预计需要花费 7 分钟才能阅读完成。
简介
之前咱们都是通过 shell 来实现对数据库的各种操作的,在开发中大部分时候咱们都须要通过程序来实现对数据库的操作。
而 Mongoose 就是一个让咱们能够通过 Node 来操作 MongoDB 的模块。
Mongoose 是一个对象文档模型(ODM)库,它对 Node 原生的 MongoDB 模块进行了进一步的优化封装,并提供了更多的性能。
在大多数状况下,它被用来把结构化的模式利用到一个 MongoDB 汇合,并提供了验证和类型转换等益处。
mongoose 的益处
能够为文档创立一个模式构造(Schema)
能够对模型中的对象 / 文档进行验证
数据能够通过类型转换转换为对象模型
能够应用中间件来利用业务逻辑挂钩
比 Node 原生的 MongoDB 驱动更容易
新的对象
mongoose 中为咱们提供了几个新的对象– Schema(模式对象)
Schema 对象定义束缚了数据库中的文档构造– Model
Model 对象作为汇合中的所有文档的示意,相当于 MongoDB 数据库中的汇合 collection– Document
Document 示意汇合中的具体文档,相当于汇合中的一个具体的文档
通过 mongoose 连贯 MongoDB
应用 Mongoose 必须先装置 mongoose 包– npm install mongoose
加载 Mongoose– const mongoose = require(“mongoose”)
连贯数据库– mongoose.connect(“mongodb:// 地址 ”)– 地址例子:mongodb://127.0.0.1/mg_test
断开连接– mongoose.disconnect()
connection
一旦连贯了 MongoDB 数据库,底层的 Connection 对象就能够通过 mongoose 模块的 conection 属性来拜访。
connection 对象是对数据库连贯的形象,它提供了对象连接、底层的 Db 对象和示意联合的 Model 对象的拜访。
并且能够对 connection 对象上的一些事件进行监听,来获悉数据库连贯的开始与端开。
比方,能够通过 open 和 close 事件来监控连贯的关上和敞开。
Schema 模式对象
应用 Mongoose 你必须常常定义模式。
模式为汇合中的文档定义字段和字段类型。
如果你的数据是被构造化成反对模式的,这是十分有用的。
简略来说,模式就是对文档的束缚,有了模式,文档中的字段必须合乎模式的规定。
否则将不能失常操作。
定义模式
模式为汇合中的文档定义字段和字段类型。
对于在模式中的每个字段,你都须要定一个特定的值类型。受反对的类型如下:– String– Number– Boolean– Array– Buffer– Date– ObjectId 或 Oid– Mixed
须要为你打算应用的每个不同的文档类型都定义一个模式。
创立模式定义
模式须要通过 mongoose 的 Schema 属性来创立,这个属性是一个构造函数。– new Schema(definition,option)
definition(形容模式)
options 配置对象,定义与数据库中汇合的交互
options 罕用选项
autoIndex– 布尔值,开启主动索引,默认 true
bufferCommands– 布尔值,缓存因为连贯问题无奈执行的语句,默认 true
capped– 汇合中最大文档数量
collection– 指定利用 Schema 的汇合名称
id– 布尔值,是否有利用于_id 的 id 处理器,默认 true
_id– 布尔值,是否主动调配 id 字段,默认 true
strict– 布尔值,不合乎 Schema 的对象不会被插入进数据库,默认 true
Model 模型对象
一旦定义好了 Schema 对象,就须要通过该 Schema 对象来创立 Model 对象。
一旦创立好了 Model 对象,就会主动和数据库中对应的汇合建设连贯,以确保在利用更改时,汇合曾经创立并具备适当的索引,且设置了必须性和唯一性。
Model 对象就相当于数据库中的汇合,通过 Model 能够实现对汇合的 CRUD 操作。
Model 模型对象
创立模型对象须要应用 mongoose 的 model() 办法,语法如下:– model(name, [schema], [collection] , [skipInit])
name 参数相当于模型的名字,当前能够同过 name 找到模型。
schema 是创立好的模式对象。
collection 是要连贯的汇合名。
skipInit 是否跳过初始化,默认是 false。
一旦把一个 Schema 对象编译成一个 Model 对象,你就齐全筹备好开始在模型中拜访、增加、删除、更新和删除文档了。也就是说有了模型当前咱们就能够操作数据库了。
Model 对象的办法
remove(conditions, callback)
deleteOne(conditions, callback)
deleteMany(conditions, callback)
find(conditions, projection, options, callback)
findById(id, projection, options, callback)
findOne(conditions, projection, options, callback)
count(conditions, callback)
create(doc, callback)
update(conditions, doc, options, callback)
等等
Document 文档对象
通过 Model 对数据库进行查问时,会返回 Document 对象或 Document 对象数组。
Document 继承自 Model,代表一个汇合中的文档。
Document 对象也能够和数据库进行交互操作。
Document 对象的办法
equals(doc)
id
get(path,[type])
set(path,value,[type])
update(update,[options],[callback])
save([callback])
remove([callback])
isNew
isInit(path)
toJSON()
toObject()
关键词:前端培训