# @antelopejs/mongodb 中文文档

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

版本：1\.6\.2
npm 元数据更新时间：2026-11-04T18:42:36.284Z
中文译文更新时间：2026-11-06T06:28:23.335Z
软件包许可：Apache-2\.0

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

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

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

- 包体积（解压后）：830 kB，195 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：8 个
- 首次发布：2025-05-08T21:48:51.988Z
- 最新版本发布：2026-11-04T18:42:35.856Z
- 近 30 天下载量：5834（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：32（近 12 个月 30 个）

## 中文简介

羚羊JS的MongoDB后端,与官方的MongoDB驱动程序执行数据库和MongoDB接口

## 安装

```sh
npm install @antelopejs/mongodb
```

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

## README

# `@antelopejs/mongodb`

[![npm](https://img.shields.io/npm/v/@antelopejs/mongodb?style=for-the-badge&labelColor=000000&color=000000)](https://www.npmjs.com/package/@antelopejs/mongodb) [![License](https://img.shields.io/npm/l/@antelopejs/mongodb?style=for-the-badge&labelColor=000000&color=000000)](https://npmcn.com/package/%40antelopejs/mongodb/LICENSE) [![Discord](https://img.shields.io/badge/Discord-18181B?logo=discord&style=for-the-badge&color=000000)](https://discord.gg/g4pFt6eXqu) [![Documentation](https://img.shields.io/badge/Docs-18181B?style=for-the-badge&color=000000)](https://interfaces.antelopejs.com/docs/database)

羚羊JS的蒙哥DB后端. 它和官员一起运行MongoDB数据库接口的查询 [`mongodb`](https://github.com/mongodb/node-mongodb-native) 驱动程序,并将驱动程序的客户端提供给直接需要的模块.

部分 [羚羊JS](https://github.com/AntelopeJS/antelopejs)用于 [羚羊JS 隐形物](https://github.com/AntelopeJS/dms),用于您的 PostgreSQL 、 MongoDB 或 RethinkDB 数据库的开源后台.

## 接口

| 接口 | 文档 |
| --- | --- |
| [`@antelopejs/interface-database`](https://github.com/AntelopeJS/interface-database) | [数据库](https://interfaces.antelopejs.com/docs/database) |
| [`@antelopejs/interface-mongodb`](https://github.com/AntelopeJS/interface-mongodb) | [蒙戈DB](https://interfaces.antelopejs.com/docs/mongodb/introduction) |
| [`@antelopejs/interface-database-catalog`](https://github.com/AntelopeJS/interface-database-catalog) | [外部模式](https://npmcn.com/package/%40antelopejs/mongodb/docs/external-mode.md#the-catalog) |

数据库界面页面文档计划,表格,查询,变化素材,以及原子突变.

## 安装

```bash
ajs project modules add @antelopejs/mongodb
```

命令写入模块的默认配置. 它连接到 `mongodb://localhost:27017` 并使用数据库 `antelopejs`。 。 。 .

## 配置

```typescript
import { defineConfig } from "@antelopejs/interface-core/config";

export default defineConfig({
  name: "my-project",
  modules: {
    mongodb: {
      source: {
        type: "package",
        package: "@antelopejs/mongodb",
        version: "^1.4.2",
      },
      config: {
        url: "mongodb://localhost:27017/?replicaSet=rs0",
        database: "my-project",
        options: { maxPoolSize: 10 },
      },
    },
  },
  envOverrides: {
    MONGODB_URL: "modules.mongodb.config.url",
  },
});
```

| 密钥 | 说明 |
| --- | --- |
| `url` | MongoDB 连接字符串 . |
| `database` | 存储每个计划库的数据库. |
| `options` | 可选 [`MongoClientOptions`](https://mongodb.github.io/node-mongodb-native/6.21/interfaces/MongoClientOptions.html) 模块传递给驱动程序. |
| `mode` | `owned` (默认)或 `external`一个自有实例创建了自己的收藏,并将其范围扩大到实例。 一个外部实例为它没有创建的数据库服务。 见 [外部模式](https://npmcn.com/package/%40antelopejs/mongodb/docs/external-mode.md)。 。 。 . |
| `statementTimeoutMs` | 每个外部实例的可选服务器侧时限, 以 `maxTimeMS`。它必须是正的安全整数. |
| `catalog` | `{ enabled?: boolean }`设置外部实例是否解答外部开发目录 . |

外部实例需要非空 `url` 财务报告和审定财务报表 `database`。它读取和撰写客户端自己收藏的文档,并且从未改变其结构。 见 [外部模式](https://npmcn.com/package/%40antelopejs/mongodb/docs/external-mode.md)。 。 。 .

更改种子使用 MongoDB 更改流,这些流需要复制集 。 单节点复制集在开发中已经足够了.

## 快开始

在存储数据的模块中,添加数据库接口:

```bash
pnpm add @antelopejs/interface-database
```

那就跟着 [数据库接口指南](https://framework.antelopejs.com/docs/guides/database) 以宣布一个计划并查询。 同样的代码运行在 [`@antelopejs/postgres`](https://github.com/AntelopeJS/postgres) 财务报告和审定财务报表 [`@antelopejs/rethinkdb`](https://github.com/AntelopeJS/rethinkdb)。 。 。 .

直接给司机打电话,请添加 `@antelopejs/interface-mongodb`数字 :

```typescript
import { GetClient } from "@antelopejs/interface-mongodb";

const client = await GetClient();
const users = client.db("my-project").collection("users");
```

## 存储布局

-   每个计划表都是一个集合, `<schemaId>__<table>`,每个例子的 计划分享。 每个文档将其实例存储于 `_instance`。 。 。 .
-   `_id` 因此使用全球独特的记录身份.
-   每个已宣布的索引 `<name>` 成为MongoDB 索引 `<name>__i` 他们的第一个领域是 `_instance`中的索引 `crossInstance: true` 也获得索引 `<name>` 无前缀,用于 `CROSS_INSTANCE` 查询。 没有它,这些查询仍然有效,但是他们不能使用一个索引并记录每个索引一次的警告.
-   已声明索引 `unique: true` 实现 `<name>__i` 索引独有,所以每个实例都有一个键。 交叉指数从来不是独一无二的. 换旗会重建索引. 创建独有索引失败, 而实例有重复 。 Schema初始化后记录出错并重试,直到去除.
-   当MongoDB拒绝为重复的密钥写作时( 代码 1100) `_id` 或在一个独特的索引上,模块将 `DuplicateKeyError` 的界面.
-   原子突变使用第二个客户端 `retryWrites` 财务报告和审定财务报表 `retryReads` 关了.

Schema初始化只在两个案例中降低一个指数. 该索引有模块在MongoDB中给出的宣布索引的名称(`<name>__i`,或 `<name>` 用于交叉索引),但其他字段或其他独有性。 或者该指数有这样一个指数的领域,但另一个独特性。 任何其他指数,例如指数 `<name>` 与所宣布的字段相对 `_instance`。要删除一个没有计划声明的索引,请手动删除,例如 `db.getCollection("<schemaId>__<table>").dropIndex("<name>")`。 。 。 .

## 文档

-   [数据库](https://interfaces.antelopejs.com/docs/database) 文档 `@antelopejs/interface-database` 与本模块执行的合同.
-   [蒙戈DB](https://interfaces.antelopejs.com/docs/mongodb/introduction) 文档 `@antelopejs/interface-mongodb` 与本模块执行的合同.
-   [外部模式](https://npmcn.com/package/%40antelopejs/mongodb/docs/external-mode.md) 解释模块如何服务于它没有创建的数据库及其目录.
-   [配置](https://framework.antelopejs.com/docs/concepts/configuration) 文档模块来源, `config` 区块和配置变量 `antelope.config.ts`。 。 。 .

## 兼容性

| 软件包 | 支助 | 测试过 |
| --- | --- | --- |
| `@antelopejs/interface-core` | `>=0.2.4 <1.0.0` | `0.2.4` |
| `@antelopejs/interface-database` | `>=0.3.0 <0.4.0` | `0.3.0` |
| `@antelopejs/interface-database-catalog` | `>=0.0.3 <0.1.0` | `0.0.3` |
| `@antelopejs/interface-mongodb` | `>=0.0.6 <1.0.0` | `0.0.6` |

`.nvmrc` 设置用于开发的节点。 这个 `dependencies` 联 合 国 `package.json` 设置 `mongodb` 驾驶员. `MONGODB_VERSION` 内 `src/test/antelope.test.ts` 设置 MongoDB 服务器发布测试复制集.

## 捐款

```bash
pnpm install
pnpm lint
pnpm format:check
pnpm knip
pnpm test           # build, then run the owned and external suites against an in-memory replica set
```

测试开始于 MongoDB `mongodb-memory-server`,在第一次运行时下载服务器二进制。 他们还管理着一套共用的相配套装 `@antelopejs/interface-database`。 。 。 .

读取 [捐款准则](https://npmcn.com/package/%40antelopejs/mongodb/CONTRIBUTING.md) 在你打开拉动请求之前.

## 许可证

[阿帕奇 - 2.0](https://npmcn.com/package/%40antelopejs/mongodb/LICENSE)

## 常见问题

### @antelopejs/mongodb 是什么？

羚羊JS的MongoDB后端,与官方的MongoDB驱动程序执行数据库和MongoDB接口

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

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

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

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

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

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

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

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

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

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

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

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

