# @fastify/mongodb 中文文档

规范地址：https://npmcn.com/package/%40fastify/mongodb/

版本：10\.0\.2
npm 元数据更新时间：2026-10-18T12:30:35.881Z
中文译文更新时间：2026-11-14T11:23:30.817Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40fastify/mongodb
原文对照：https://npmcn.com/package/%40fastify/mongodb/?lang=original
项目主页：https://github.com/fastify/fastify-mongodb#readme
源码仓库：https://github.com/fastify/fastify-mongodb

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：30 kB，13 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：2 个
- 首次发布：2022-04-27T13:59:54.557Z
- 最新版本发布：2026-10-09T14:54:49.765Z
- 近 30 天下载量：83067（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：15（近 12 个月 3 个）

## 中文简介

快捷 MongoDB 连接插件

## 安装

```sh
npm install @fastify/mongodb
```

也可以使用：`pnpm add @fastify/mongodb`、`yarn add @fastify/mongodb`、`bun add @fastify/mongodb`

## README

# @ fastify/ mongodb

[![CI](https://github.com/fastify/fastify-mongodb/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/fastify/fastify-mongodb/actions/workflows/ci.yml) [![NPM version](https://img.shields.io/npm/v/@fastify/mongodb.svg?style=flat)](https://www.npmjs.com/package/@fastify/mongodb) [![neostandard javascript style](https://img.shields.io/badge/code_style-neostandard-brightgreen?style=flat)](https://github.com/neostandard/neostandard)

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

在头罩下,官员 [蒙戈DB](https://github.com/mongodb/node-mongodb-native) 使用驱动程序, 您通过选项 `register` 将交给蒙戈客户. 这个 `mongodb` 驱动程序为v7.x.x.

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

## 安装

```bash
npm i @fastify/mongodb
```

## 使用量

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

```js
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`数字 :

```js
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 连接,您必须手动调用 [紧贴. 关闭](https://fastify.dev/docs/latest/Reference/Server/#close) 方法(例如用于测试目的,否则测试将悬挂).
-   `mongodb` 连接超时从30s( 默认) 减少到7. 5s, 以在错误发生之前丢出 `fastify` 插件超时 .

## 参考文献

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

-   `client` 这是 [`MongoClient` 实例](https://mongodb.github.io/node-mongodb-native/3.3/api/MongoClient.html)
-   `ObjectId` 这是 [`ObjectId` 类](https://mongodb.github.io/node-mongodb-native/3.3/api/ObjectID.html)
-   `db` 这是 [`DB` 实例](https://mongodb.github.io/node-mongodb-native/3.3/api/Db.html)

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

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

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

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

-   (单位:千美元) `database` 插件注册时会给出字符串选项 .
-   连接字符串包含数据库名称。 见 [连接字符串 URI 格式](https://www.mongodb.com/docs/manual/reference/connection-string/?deployment-type=atlas&interface-atlas-only=atlas-cli)

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

```js
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)
})
```

## 承认

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

-   [临近格式](https://nearform.com/)

过去提案国:

-   莱兹

## 许可证

许可证根据 [麻省理工学院](https://npmcn.com/package/%40fastify/mongodb/LICENSE)。 。 。 .

## 常见问题

### @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 和提交记录判断。

