文章列表 (共 625 篇,第 14/63 页)
Mongoose中的填充查询(populate)类似关系型数据库中的“连接查询”,通过populate()函数,使你可以在一个文档中引用另一个集合中的文档,并将其填充到指定文档路径中。
备注:也有人将populate译为“联表”,本系列文档中统一使用“填充”。
概述
保存引用
填充
设置填充字段
字段选择
填充多个路径
查询条件与其它选项
...
阅读全文 →
中间件
前置(pre)中间件
后置(post)中间件
异步Post钩子
保存/验证钩子
命名冲突
关于findAndUpdate()和Query中间件的说明
错误处理中间件
同步钩子
1. 中间件
中间件也称为“前置”(pre)和“后置”(post)钩子,是在执行异步功能期间传递控制的函数。中间件在模式(Schema)级别指定,对编...
阅读全文 →
验证器是定义于SchemaType中的验证中间件,用于文档更新或保存期间对输入值进行验证。你可以使用Mongoose内置的验证器,也可以自自定义验证器。无论哪种验证器,都可以手工或自动触发。
验证
内置验证器
unique选项不是验证器
自定义验证器
异步自定义验证器
验证错误
嵌套对象上的requied验证器
更新验证器
更新验证器与...
阅读全文 →
Mongoose模型的很多类方法都不能直接返回查询或操作结果,其会返回一个Query对象,我们需要从Query对象中获取操作结果。Query对象是一个链式查询,我们可以在查询过程中引用其它文档,也可以流式的传输查询结果。
Queries
Queries不是Promise
引用其它文档
流
1. Queries
Mongoose的模型(Model...
阅读全文 →
在Mongoose中,每个文档(Document)都表示对数据库集中一条记录的映射。Document通过Model的查找(如:findById等)方法创建,创建后可以通过Document对其对应的数据库数据进行相关操作。
文档
1.1 检索
1.2 更新
1.3 验证
1.4 覆盖
子文档
2.1 ...
阅读全文 →
模型是从Schema定义编译的构造函数,模型的实例称为文档。模型负责从底层MongoDB数据库创建和读取文档。
编译第一个模型
构建文档
查询
删除
更新
更改流
1. 编译第一个模型
var schema = new mongoose.Schema({ name: 'string', size: 'string' });
va...
阅读全文 →阅读全文 →阅读全文 →
Mongoose支持插件功能,我们可以将可重用的功能打包成插件,然后可以在全局级别(mongoose级别)或模式级别(Schema级别)加载插件,以实现插件的共享。
插件
全局插件
官方插件
社区支持
1. 插件
模式是可插件化的,也就是说,它允许应用预先打包的一些通用性功能来扩展其功能。这是一个非常强大的功能。
例如,我们的数据库中有多个集合...
阅读全文 →
Mongoose的鉴别器(Discriminator)提供了Schema间的继承机制,我们可以定义一个基础模型的schema,并通过基础模型的model.discriminator()方法来加子schema,即可实现模式的继承。
model.discriminator()函数
鉴别器保存到Event模型的集合中
鉴别器的Key
添加鉴别器的Key...
阅读全文 →