介绍
mongoose-plugin-dataloader 是一个基于 Mongoose 的 npm 包,可以帮助我们快速实现批量查询。
传统的方式是单个查询,会造成查询负担大,而 mongoose-plugin-dataloader 可以通过批量查询,减小查询负担,提高查询速度。
在使用之前,需要确认是否已经了解 Mongoose 和 GraphQL。
安装
npm install mongoose-plugin-dataloader
使用
在 Mongoose 模式中增加哪些字段需要在 dataloader 中进行查询:
-- -------------------- ---- ------- ----- -------- - ------------------- ----- ------------------ - ------------------------------------- ----- ------ - --- ----------------- -------- - ----- ------ -- ----- - ----- ------ - --- -- --------------------------------- ----- ----- - ----------------------- -------
MongoDB 数据库中数据需要符合 dataloader keys 的规范才能正确被 dataloader 进行批量查询,若数据的_id 被替换为 GUID,那么就需要手动重写 toObject 函数。
schema.options.toObject = { transform: function (doc, ret, options) { ret.id = ret._id.toString() delete ret._id delete ret.__v return ret } }
加载数据,不必一条条调用:findById 或 findOne,而可以通过 loadMany 函数来完成批量加载。
const keys = ['1', '2', '3'] const result = await Model.loadMany(keys)
示例代码
-- -------------------- ---- ------- ----- -------- - ------------------- ----- ------------------ - ------------------------------------- ----- ------ - --- ----------------- -------- - ----- ------ -- ----- - ----- ------ -- -- ----------------------- - - ---------- -------- ----- ---- -------- - ------ - ------------------ ------ ------- ------ ------- ------ --- - - --------------------------------- ----- ----- - ----------------------- ------- ----- ---- - ----- ---- ---- ----- ------ - ----- -------------------- -------------------
以上就是 mongoose-plugin-dataloader 的使用教程,试着使用它去优化你的查询吧。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600673defb81d47349e53bdf