# @x12i/memorix-data 中文文档

规范地址：https://npmcn.com/package/%40x12i/memorix-data/

版本：3\.8\.0
npm 元数据更新时间：2026-11-02T21:18:03.906Z
中文译文更新时间：2026-11-02T22:48:08.379Z
软件包许可：exellix-license

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

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

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

- 包体积（解压后）：746 kB，174 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=18\.0\.0
- 运行依赖：4 个
- 首次发布：2026-07-21T21:24:43.776Z
- 最新版本发布：2026-11-02T21:18:03.743Z
- 已发布版本数：23（近 12 个月 23 个）

## 中文简介

内存数据平面：作用域/路由（5A）、V2写（5B）、读（5C）、抽象逆写（5D）、关系存储/读（5E）。

## 安装

```sh
npm install @x12i/memorix-data
```

也可以使用：`pnpm add @x12i/memorix-data`、`yarn add @x12i/memorix-data`、`bun add @x12i/memorix-data`

## README

# `@x12i/memorix-data`

Memorix **数据平面**：范围路由，记录目录，V2内容 **作家** / **读者**,兄弟姐妹 **组成**、抽象 **reverse-write**，关系 **读取** (扩张)。

所有的主体突变都经过这个平面（或者称之为记忆/关系引擎）。永远不要用原始的Mongo驱动程序编写域文档。

## 安装

```bash
npm install @x12i/memorix-data@3.7.0
```

| 观众 | 用这个包吗？ |
| --- | --- |
| 远程应用程序 | **否** ——调用 `memorix-service` `/api/data` |
| 平台/服务组合 | **是** |

## 写操作

`add` · `upsert` · `patch` · `replace` · `remove`

每一个需要 `MemorixScope` （`orgId` + `agentIds[]`)和先决条件(`absent` 或者确切的 `revision`）. 陈旧的修订→冲突。

## 读取操作

`getContent` · `listContent` · `composeSubject` · `getAbstract` · `listAbstract`

数量: `countLiveContent` （一对，逻辑删除的行除外）， `countDirectoryRecords` （每个对象类型的目录文档），以及 `countDirectoryRecordsWithoutContent` 目录文件 `contentTypes` 是空的还是只有 `relationships`）。

默认读取返回一条逻辑V2记录(`_id` 剥夺了)。传递关系包括虚拟选项 `{ source, relationships }` 扩张。 **链接突变不在这里** ——使用 `@x12i/memorix-relationships`.

## 文摘reverse-write

`patchAbstract` →反向映射→一个具体的写入补丁。没有抽象集合/抽象 `recordId`.

## 简单的例子

```ts
import { createMongoContentWriter, createMongoContentReader } from "@x12i/memorix-data";

const writer = createMongoContentWriter({ client, /* routing */ });
const reader = createMongoContentReader({ client, /* routing */ });

await writer.add(scope, {
  draft: { /* MemorixRecordDraft V2 */ },
  precondition: { kind: "absent" },
});

const record = await reader.getContent(scope, {
  objectType: "work-items",
  contentType: "snapshots",
  recordId: "WI-100",
});

const composed = await reader.composeSubject(scope, { recordId: "WI-100" });
// composed.contents → { raw: [...], snapshots: [...], ... }
```

## 相关

| 需要 | 包/ API |
| --- | --- |
| 信封验证 | `@x12i/memorix-format` |
| 四大的链接 | `@x12i/memorix-relationships` |
| HTTP | `/api/data`， `/api/data/compose`， `/api/data/abstract` |

## 文档

-   [`documentation/data-model.md`](https://npmcn.com/package/%40x12i/documentation/data-model.md) · [`documentation/http-api.md`](https://npmcn.com/package/%40x12i/documentation/http-api.md)
-   电子书: [运行时数据客户端](https://npmcn.com/package/%40x12i/memorix-docs/02-runtime-data-client/) · [访问模式](https://npmcn.com/package/%40x12i/memorix-docs/04-data-access-patterns/)
-   中心: [https://docs.memorix.x12i.com](https://docs.memorix.x12i.com/)

```bash
npm test
```

## 常见问题

### @x12i/memorix-data 是什么？

内存数据平面：作用域/路由（5A）、V2写（5B）、读（5C）、抽象逆写（5D）、关系存储/读（5E）。

### 如何安装 @x12i/memorix-data？

在项目目录运行 npm install @x12i/memorix-data，或使用 pnpm add / yarn add / bun add。

### @x12i/memorix-data 支持 TypeScript 吗？

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

### @x12i/memorix-data 支持 ESM 还是 CommonJS？

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

### @x12i/memorix-data 需要什么版本的 Node\.js？

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

### @x12i/memorix-data 可以商用吗？

@x12i/memorix-data 使用 exellix-license 许可。声明的许可为 exellix-license，请阅读许可原文确认使用条件。以上为概括，不构成法律意见，请以许可原文为准。

### @x12i/memorix-data 还在维护吗？

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

