# @bedrock/mongodb 中文文档

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

版本：11\.0\.1
npm 元数据更新时间：2025-10-01T23:34:05.504Z
中文译文更新时间：2026-11-07T20:25:22.440Z
软件包许可：Apache-2\.0

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

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

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

- 包体积（解压后）：94.2 kB，24 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=20
- 运行依赖：2 个
- peer 依赖：@bedrock/core ^6\.0\.0
- 首次发布：2022-04-01T05:02:20.127Z
- 最新版本发布：2025-10-01T23:34:05.255Z
- 近 30 天下载量：3759（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：8（近 12 个月 0 个）

## 中文简介

Bedrock mongodb 模块

## 安装

```sh
npm install @bedrock/mongodb
```

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

## README

# 基建-蒙戈德b

A 类 [基石](https://github.com/digitalbazaar/bedrock) 模块创建简单的 MongoDB 数据库并提供 方便的 API 创建并与其收藏合作 .

## 所需资源

-   npm v9+ (英语)

## 快速示例

```
npm install @bedrock/mongodb
```

以下是一个在数据库准备好时简单地打开一个收藏的例子 然后运行查询并打印结果。 更常见的用于 模块 `@bedrock/mongodb` 就是暴露自己隐藏的API 使用它所打开的收藏的细节.

```js
import * as bedrock from '@bedrock/core';
import * as database from '@bedrock/mongodb';

// custom configuration
bedrock.config.mongodb.name = 'my_project_dev'; // default: bedrock_dev
bedrock.config.mongodb.host = 'localhost';      // default: localhost
bedrock.config.mongodb.protocol = 'mongodb';    // default: mongodb
bedrock.config.mongodb.port = 27017;            // default: 27017
bedrock.config.mongodb.username = 'my_project'; // default: bedrock
bedrock.config.mongodb.password = 'password';   // default: password

// the mongodb database 'my_project_dev' and the 'my_project' user will
// be created on start up following a prompt for the admin user credentials

// alternatively, use `mongodb` URL format (preferred for deployments):
bedrock.config.mongodb.url = 'mongodb://localhost:27017/my_project_dev';

// open some collections once the database is ready
bedrock.events.on('bedrock-mongodb.ready', async function() {
  await database.openCollections(['collection1', 'collection2']);

  // do something with the open collection(s)
  const result = await database.collections.collection1.findOne({id: 'foo'});
  console.log('result', result);
});

bedrock.start();
```

## 配置

关于数据库配置的文件,见 [配置( j)](https://npmcn.com/package/%40bedrock/mongodb/lib/config.js)。 。 。 .

### 连接和认证

MongoDB的文档提供了如何使用多种认证的实例 连接字符串的数目.

[Mongo 节点驱动程序连接文件](https://www.mongodb.com/docs/drivers/node/current/fundamentals/connection/connect/)

您可以通过设置 URL 连接 :

```js
config.mongodb.url = 'mongodb://myDBReader:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin';
```

您也可以使用一些小的更改连接到访问启用的 Mongo 服务器 `config.mongodb.connectOptions`然而 `config.mongodb.url` 选项高度 最好而且应涵盖大多数使用情况:

```js
import {config} from '@bedrock/core';

config.mongodb.username = 'me';
config.mongodb.password = 'password';
config.mongodb.protocol = 'mongodb+srv';
const {connectOptions} = config.mongodb;
// optional, only required if connecting to a replicaSet
connectOptions.replicaSet = 'my_provider_replica_set';
// optional, but required in production by many providers
connectOptions.ssl = true;
// optional, only required if your provider requires tls
connectOptions.tls = true;
// the `authSource` option replaces the older `authDB` option
// it should be specified or else it will be the `mongodb.name`
connectOptions.authSource = 'my_provider_auth_db';
```

MongoDB 提供 [关于连接字符串的优秀文件](https://docs.mongodb.com/manual/reference/connection-string/)

## 所需资源

-   Linux 或 Mac OS X( 也在 Windows 上工作, 并带有一些coaxing)
-   节点.js >= 20.x
-   npm >= 10.x
-   \>= 6.x
-   libkrb5-dev >= 1.x.x

## 设置

1.  确保在mongodb上设置管理员用户。 要做到这一点,遵循指示 时间 [维基文库中相关的原始文献: 维基语录链接:名人名言 - 分类](http://docs.mongodb.org/manual/tutorial/add-user-administrator/) 您的MongoDB版本。 目前支持版本6.x.
2.  \[可选 调整您的工程配置设置; 见 [配置](https://npmcn.com/package/%40bedrock/mongodb/#readme-configuration) 或者说 [快速示例](https://npmcn.com/package/%40bedrock/mongodb/#readme-quick-examples)。 。 。 .

## API 密码

### 收藏

对象的密钥为已收藏的名称 通过 `openCollections`。 。 。 .

### 开放式集合( 收藏)

打开一组收藏( 必要时创建) , 如果还没有 打开。 一旦所有藏品都打开了 返回的诺言就决定了 若为 发生错误,返回的许诺拒绝。 如果没有出错, 那么一次 承诺决定 `collections` 对象将有匹配 集合名称和值为实例 [僧侣本土](https://www.mongodb.com/docs/drivers/node/current/) [收藏](https://mongodb.github.io/node-mongodb-native/6.14/classes/Collection.html)。 。 。 .

### 创建 GridFSBucket( 选项)

创建并返回新的 `GridFSBucket` 从本地司机。 选项是 与 `GridFSBucket`。使用当前客户端并使用 `writeConcern` 选项默认为 `writeOptions` 配置值 .

## 测试模式

### 初始化时放下收藏

在进行测试时,通常最好在 开始试运行. 可通过下列方式做到这一点: 配置参数 **补充** 以指定测试参数 命令线 项目中的测试配置应当 **总是** 指定一个 **团结** mongodb数据库.

```
// Always specify a unique mongodb database for testing
bedrock.config.mongodb.name = 'my_project_test';
bedrock.config.mongodb.host = 'localhost';
bedrock.config.mongodb.port = 27017;
bedrock.config.mongodb.username = 'test'; // default: bedrock
bedrock.config.mongodb.password = 'password';
// drop collections on initialization
bedrock.config.mongodb.dropCollections.onInit = true;
// if 'onInit' is specified, 'collections' must also be specified
// if collections is an empty array, ALL collections will be dropped
bedrock.config.mongodb.dropCollections.collections = [];
```

## 许可证

[Apache 许可证,2.0版本](https://npmcn.com/package/%40bedrock/mongodb/LICENSE) 版权所有 2011-2024 Digital Bazaar, Inc.

其他贝德罗克图书馆可使用非商业许可证 诸如自学、研究、个人项目或评价目的. 见 [Bedrock 非商业许可证 v1.0](https://github.com/digitalbazaar/bedrock/blob/main/LICENSES/LicenseRef-Bedrock-NC-1.0.txt) 详细情况.

商业许可证和通过联系获得支助 [数字集市](https://digitalbazaar.com/) [支持@ digitalbazaar.com](mailto:support@digitalbazaar.com)。 。 。 .

## 常见问题

### @bedrock/mongodb 是什么？

Bedrock mongodb 模块

### 如何安装 @bedrock/mongodb？

在项目目录运行 npm install @bedrock/mongodb，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@bedrock/core（^6\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @bedrock/mongodb 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/bedrock\_\_mongodb 是否存在。

### @bedrock/mongodb 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @bedrock/mongodb 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=20。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @bedrock/mongodb 可以商用吗？

@bedrock/mongodb 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @bedrock/mongodb 的下载量有多少？

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

### @bedrock/mongodb 还在维护吗？

最新版本 11\.0\.1 发布于 2025/10/02（1\.1 年前）；至今共发布 8 个版本，其中过去 12 个月发布了 0 个；首次发布于 2022/04/01。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

