@fastify/mongodb

中文文档
10.0.2发布于 2026/10/09MITTypeScriptCommonJS构建来源已验证近 30 天下载 8.3万

快捷 MongoDB 连接插件

中文使用文档
文档目录5 节
  1. 安装
  2. 使用量
  3. 参考文献
  4. 承认
  5. 许可证

@ fastify/ mongodb

CI NPM version neostandard javascript style

速成 MongoDB 连接插件; 您可以用此程序在服务器的每个部分共享相同的 MongoDB 连接池 .

在头罩下,官员 蒙戈DB 使用驱动程序, 您通过选项 register 将交给蒙戈客户. 这个 mongodb 驱动程序为v7.x.x.

如果您自己不提供客户端( 见下文) , URL 选项为 所需经费。 。 。 .

安装

npm i @fastify/mongodb

使用量

添加到您的项目中 register 你们就完了!

const fastify = require('fastify')()

fastify.register(require('@fastify/mongodb'), {
  // force to close the mongodb connection when app stopped
  // the default value is false
  forceClose: true,

  url: 'mongodb://mongo/mydb'
})

fastify.get('/user/:id', async function (req, reply) {
  // Or this.mongo.client.db('mydb').collection('users')
  const users = this.mongo.db.collection('users')

  // if the id is an ObjectId format, you need to create a new ObjectId
  const id = new this.mongo.ObjectId(req.params.id)
  try {
    const user = await users.findOne({ id })
    return user
  } catch (err) {
    return err
  }
})

fastify.listen({ port: 3000 }, err => {
  if (err) throw err
})

您也可提供预配置实例 mongodb.MongoClient数字 :

const mongodb = require('mongodb')
mongodb.MongoClient.connect('mongodb://mongo/db')
  .then((client) => {
    const fastify = require('fastify')()

    fastify.register(require('@fastify/mongodb'), { client: client })
      .register(function (fastify, opts, next) {
        const db = fastify.mongo.client.db('mydb')
        // ...
        // ...
        // ...
        next()
      })
  })
  .catch((err) => {
    throw err
  })

注释:

  • 通过 client 连接将 没有 快速服务器时关闭 关闭.
  • 要终止 MongoDB 连接,您必须手动调用 紧贴. 关闭 方法(例如用于测试目的,否则测试将悬挂).
  • mongodb 连接超时从30s( 默认) 减少到7. 5s, 以在错误发生之前丢出 fastify 插件超时 .

参考文献

此插件装饰 fastify 实例 mongo 对象。 那个物体有: 以下属性 :

这个 ObjectId 类也可以从插件中直接导入,因为从插件中再导出 mongodb数字 :

const { ObjectId } = require('@fastify/mongodb')

const id = new ObjectId('some-id-here')

这个 db 添加属性 只有在数字 :

  • (单位:千美元) database 插件注册时会给出字符串选项 .
  • 连接字符串包含数据库名称。 见 连接字符串 URI 格式

A 类 name 选项可用于连接多个MongoDB集群.

const fastify = require('fastify')()

fastify
  .register(require('@fastify/mongodb'), { url: 'mongodb://mongo1/mydb', name: 'MONGO1' })
  .register(require('@fastify/mongodb'), { url: 'mongodb://mongo2/otherdb', name: 'MONGO2' })

fastify.get('/', function (req, res) {
  // This collection comes from "mongodb://mongo1/mydb"
  const coll1 = this.mongo.MONGO1.db.collection('my_collection')
  // This collection comes from "mongodb://mongo2/otherdb"
  const coll2 = this.mongo.MONGO2.db.collection('my_collection')
  // ...
  // ...
  // do your stuff here
  // ...
  // ...
  res.send(yourResult)
})

承认

这个项目由下列各方慷慨赞助:

过去提案国:

  • 莱兹

许可证

许可证根据 麻省理工学院。 。 。 .

版本与发布记录

@fastify/mongodb 共发布 15 个版本,首次发布于 2022/04/27;过去 12 个月发布了 3 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
10.0.2latest2026/10/091 个月前
10.0.12026/08/093 个月前
10.0.02026/01/279 个月前
9.0.22025/01/111.8 年前
9.0.12024/09/212 年前
9.0.0next2024/09/072 年前

关于 @fastify/mongodb 的常见问题

@fastify/mongodb 是什么?

快捷 MongoDB 连接插件

如何安装 @fastify/mongodb?

在项目目录运行 npm install @fastify/mongodb,或使用 pnpm add / yarn add / bun add。

@fastify/mongodb 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@fastify/mongodb 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@fastify/mongodb 可以商用吗?

@fastify/mongodb 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@fastify/mongodb 的下载量有多少?

根据 npm 官方下载统计,@fastify/mongodb 在 2026/10/15 – 2026/11/13 这 30 天内被下载 83,067 次,日均约 2,769 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@fastify/mongodb 还在维护吗?

最新版本 10.0.2 发布于 2026/10/09(1 个月前);至今共发布 15 个版本,其中过去 12 个月发布了 3 个;首次发布于 2022/04/27。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。