Skip to content

Commit 7c4a4cc

Browse files
committed
更新STATUS.md
1 parent eff6f6a commit 7c4a4cc

2 files changed

Lines changed: 110 additions & 7 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,17 @@
55
## [Unreleased]
66
### Added
77
- 新增 STATUS.md:迁移并集中维护能力矩阵与路线图。
8+
- 补充 MongoDB 未实现方法清单至 STATUS.md。
9+
- 进一步细化 STATUS.md:补充 MongoDB 未实现项(showRecordId/comment/readPreferenceTags/renameCollection/collMod/convertToCapped/validator 等)。
810

911
### Changed
1012
- README 的“状态”章节精简为“速览”,并链接至 STATUS.md。
1113
- 更新 .junie/guidelines.md:补充“流程与质量”规范(分支与发布、弃用策略、错误处理、日志去敏、缓存策略、性能预算、兼容性、测试规范、目录与导出、TS 声明、PR 模板、安全与配置、文档联动与自检)。
1214
- 将 .junie/guidelines.md 通用化:新增“工作区通用规范 + 自动选择策略”,并以 profiles/monSQLize 承载该项目差异化信息。
15+
- 扩展 STATUS.md:补充“能力缺口与优先级、设计与实现要点、测试与质量建议、下一步清单”。
16+
- 将“MongoDB 方法覆盖现状”迁移为能力矩阵表格行,并移除冗余清单段落。
17+
- STATUS.md:将“读 API(Read)”与“MongoDB 方法(Read)”对齐合并展示(表内相邻呈现,分类标记为“读 API(Read) · MongoDB 对齐”)。
18+
- STATUS.md:在能力矩阵中补充非弃用的 MongoDB 方法/选项行(Change Streams 关键选项、聚合 $out/$merge、运算符类别声明、GridFS 选项、time-series/clustered/capped 态度),排除已弃用能力。
1319

1420
### Fixed
1521
- (在此添加)

‎STATUS.md‎

Lines changed: 104 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,6 @@
1919
| 数据库类型 | SQLite | 🗺️ 计划中 | 未实现 |
2020
| 数据库类型 | 查询运算符映射(operators) | 🗺️ 计划中 | 预研草案,尚未实现跨库翻译 |
2121
| 数据模型/Schema | Schema 能力 | ❌ 未实现 | 由上层应用自行约束 |
22-
| 读 API(Read) | findOne | ✅ 已实现 | 支持 projection、sort、cache、maxTimeMS |
23-
| 读 API(Read) | find | ✅ 已实现 | 支持 limit/skip 普通分页;未传 limit 使用全局 findLimit(默认 10);limit=0 表示不限制 |
24-
| 读 API(Read) | 深分页(游标/主键) | ❌ 未实现 | 计划中 |
25-
| 读 API(Read) | 链表/聚合驱动分页 | ❌ 未实现 | 计划中 |
26-
| 读 API(Read) | count | ✅ 已实现 | 统计匹配文档数 |
27-
| 读 API(Read) | stream(find 流式返回) | ❌ 未实现 | 计划中 |
28-
| 读 API(Read) | 聚合(aggregate/或 find 支持聚合) | ❌ 未实现 | 后续可能透传或翻译 |
2922
| 缓存与失效 | 内置内存缓存 | ✅ 已实现 | 读穿、TTL(毫秒)、LRU、惰性过期、并发去重 |
3023
| 缓存与失效 | 稳定序列化键 | ✅ 已实现 | 支持常见 BSON;keys()/delPattern();统计(enableStats 可选) |
3124
| 缓存与失效 | 命名空间与精准失效 | ✅ 已实现 | collection.invalidate(op?);getNamespace() |
@@ -42,6 +35,60 @@
4235
| 写相关辅助 | 写后读缓存一致性 | 手动 | 不自动失效,建议写后调用 collection.invalidate(op?) |
4336
| 其他 | 安全默认 | ✅ 已实现 | find 未指定 limit 使用全局 findLimit;limit=0 表示不限制 |
4437
| 其他 | 命名空间 instanceId | ✅ 已实现 | 可显式指定或自动生成;scope 支持 database/connection |
38+
| 读 API(Read) | findOne | ✅ 已实现 | 支持 projection、sort、cache、maxTimeMS |
39+
| 读 API(Read) | find | ✅ 已实现 | 支持 limit/skip 普通分页;未传 limit 使用全局 findLimit(默认 10);limit=0 表示不限制 |
40+
| 读 API(Read) | 深分页(游标/主键) | ❌ 未实现 | 计划中 |
41+
| 读 API(Read) | 链表/聚合驱动分页 | ❌ 未实现 | 计划中 |
42+
| 读 API(Read) | count | ✅ 已实现 | 统计匹配文档数 |
43+
| 读 API(Read) | stream(find 流式返回) | ❌ 未实现 | 计划中 |
44+
| 读 API(Read) | 聚合(aggregate/或 find 支持聚合) | ❌ 未实现 | 后续可能透传或翻译 |
45+
| 读 API(Read) | distinct | ❌ 未实现 | 仅 Mongo 适配器语义;尚未纳入抽象 |
46+
| 读 API(Read) | explain | ❌ 未实现 | 诊断用途;建议透传且禁用缓存(规划中) |
47+
| 读 API(Read) | countDocuments / estimatedDocumentCount | ❌ 未实现 | 目前仅对外提供 count 抽象;计划拆分补充 |
48+
| 读 API(Read) | 高级查询/游标选项统一抽象 | ❌ 未实现 | batchSize/hint/collation/noCursorTimeout/tailable/max/min/returnKey/allowPartialResults/readPreference/readConcern |
49+
| 读 API(Read) | showRecordId | ❌ 未实现 | Mongo 专属选项 |
50+
| 读 API(Read) | comment / let | ❌ 未实现 | let 多见于聚合;待评估透传策略 |
51+
| 读 API(Read) | readPreferenceTags | ❌ 未实现 | 读偏好标签,仅 Mongo 适配器相关 |
52+
| MongoDB 方法(Writes) | insertOne / insertMany | ❌ 未实现 | 写路径当前不在范围内;不提供自动失效 |
53+
| MongoDB 方法(Writes) | updateOne / updateMany | ❌ 未实现 | 同上 |
54+
| MongoDB 方法(Writes) | replaceOne | ❌ 未实现 | 同上 |
55+
| MongoDB 方法(Writes) | deleteOne / deleteMany | ❌ 未实现 | 同上 |
56+
| MongoDB 方法(Writes) | bulkWrite | ❌ 未实现 | 同上 |
57+
| MongoDB 方法(Writes) | findOneAndUpdate / findOneAndReplace / findOneAndDelete | ❌ 未实现 | findAndModify 系列 |
58+
| MongoDB 方法(Indexes) | createIndex / createIndexes | ❌ 未实现 | 索引管理未纳入抽象 |
59+
| MongoDB 方法(Indexes) | dropIndex / dropIndexes | ❌ 未实现 | 同上 |
60+
| MongoDB 方法(Indexes) | listIndexes | ❌ 未实现 | 同上 |
61+
| MongoDB 方法(Indexes) | 索引选项统一抽象 | ❌ 未实现 | unique/sparse/TTL/partialFilterExpression/collation 等 |
62+
| MongoDB 方法(Indexes) | hidden/wildcard/columnstore | ❌ 未实现 | 待评估,版本相关 |
63+
| MongoDB 方法(Transactions & Sessions) | startSession/withTransaction/commit/abort | ❌ 未实现 | 会话与事务未纳入抽象 |
64+
| MongoDB 方法(Transactions & Sessions) | readConcern / readPreference / causalConsistency | ❌ 未实现 | 与会话绑定的读选项 |
65+
| MongoDB 方法(Change Streams) | watch | ❌ 未实现 | 集合/数据库/集群级变更流 |
66+
| MongoDB 方法(Admin/DB/Collection) | listCollections / listDatabases | ❌ 未实现 | 管理类接口未纳入抽象 |
67+
| MongoDB 方法(Admin/DB/Collection) | dropDatabase | ❌ 未实现 | 同上 |
68+
| MongoDB 方法(Admin/DB/Collection) | db.stats() / coll.stats() | ❌ 未实现 | 同上 |
69+
| MongoDB 方法(Admin/DB/Collection) | runCommand | ❌ 未实现 | 通用命令透传(待策略) |
70+
| MongoDB 方法(Admin/DB/Collection) | serverStatus / ping / buildInfo | ❌ 未实现 | 同上 |
71+
| MongoDB 方法(Admin/DB/Collection) | profilingLevel / setProfilingLevel | ❌ 未实现 | 同上 |
72+
| MongoDB 方法(Admin/DB/Collection) | 用户与角色管理 | ❌ 未实现 | createUser/grantRoles/revokeRoles/dropUser 等 |
73+
| MongoDB 方法(Admin/DB/Collection) | renameCollection / collMod / convertToCapped | ❌ 未实现 | 同上 |
74+
| MongoDB 方法(Admin/DB/Collection) | validator / validationLevel / validationAction | ❌ 未实现 | 统一抽象未实现 |
75+
| MongoDB 方法(Cursors & Pagination) | 深分页(游标/主键锚点) | ❌ 未实现 | 见上方“读 API”;计划中 |
76+
| MongoDB 方法(Cursors & Pagination) | 流式消费(cursor/async iterator) | ❌ 未实现 | 计划中;find 的 stream 形态 |
77+
| MongoDB 方法(Cursors & Pagination) | 其他光标细节统一抽象 | ❌ 未实现 | batchSize/noCursorTimeout/tailable/maxAwaitTimeMS/exhaust/hint |
78+
| MongoDB 方法(Operators/Projection/Sort) | 跨库运算符映射层 | 🗺️ 计划中 | operators registry;复杂阶段如 $lookup/$facet/$graphLookup 未覆盖 |
79+
| MongoDB 方法(GridFS) | GridFSBucket 及 API | ❌ 未实现 | openUploadStream/openDownloadStream 等 |
80+
| MongoDB 方法(Options) | collation / readPreference / readConcern / writeConcern | ❌ 未实现 | 统一抽象未纳入 |
81+
| MongoDB 方法(Options) | explain / allowDiskUse / let / comment | ❌ 未实现 | 其中 allowDiskUse 多见于聚合;透传策略待定 |
82+
| MongoDB 方法(Options) | 时间序列/特殊集合能力封装 | ❌ 未实现 | 如 TTL index 管理等 |
83+
| MongoDB 方法(Driver-level) | apiVersion / 传输与压缩参数 | ❌ 未实现 | 驱动层能力;不在通用抽象范围 |
84+
| MongoDB 方法(Change Streams) | 关键选项(fullDocument/fullDocumentBeforeChange/resumeAfter/startAfter/startAtOperationTime) | ❌ 未实现 | 仅 Mongo;跨库缺失;通常禁用缓存 |
85+
| MongoDB 方法(Aggregation) | $out / $merge | ❌ 未实现 | 写路径;短期不纳入通用抽象;透传需禁缓存 |
86+
| MongoDB 方法(Operators) | 文本/正则/地理运算符覆盖声明($text/$regex/$geoWithin/$near 等) | 🗺️ 计划中 | Mongo-only 透传策略待定;跨库取决于 operators registry |
87+
| MongoDB 方法(GridFS) | 选项(chunkSizeBytes/disableMD5) | ❌ 未实现 | 仅在引入 GridFS 时细化 |
88+
| MongoDB 方法(Admin/DB/Collection) | time-series/clustered/capped 集合支持态度 | ❌ 未实现 | 暂不纳入通用抽象;仅在 Mongo createCollection/collMod 透传 |
89+
90+
## MongoDB 方法覆盖现状(已合并至能力矩阵)
91+
> 说明:MongoDB 方法覆盖情况已并入上方“能力矩阵”主表(分类以“MongoDB 方法(…)”开头)。后续更新请直接维护表格行,避免与该段落重复。
4592
4693
## 里程碑(示例)
4794
- [Unreleased]
@@ -52,6 +99,56 @@
5299
## Not Goals(短期非目标)
53100
- 提供写 API 的自动失效(由调用方手动失效或在业务层封装)。
54101

102+
## 能力缺口与优先级(建议)
103+
- P0(直接提升可用性/生态兼容)
104+
- 深分页(游标/主键)
105+
- 多层缓存(本地+远端)
106+
- 健康检查/事件钩子
107+
- P1(扩展能力面)
108+
- stream(find 流式返回)
109+
- 聚合(aggregate/透传)
110+
- 查询运算符映射层(operators)
111+
- P2(生态/打包与多数据库)
112+
- 模块格式:ESM 条件导出
113+
- PostgreSQL/MySQL/SQLite 适配器(从只读最小集起步)
114+
- Not Goals(短期不做)
115+
- 写路径自动失效(保持由业务手动失效或上层封装)
116+
117+
## 设计与实现要点(提纲)
118+
- 深分页
119+
- 提供“游标/主键锚点 + 方向”(after/before + limit + sort),默认使用主键升序。
120+
- 禁止与不稳定排序字段混用;缓存键需包含锚点与方向信息。
121+
- 多层缓存
122+
- 在现有 CacheLike 基础上组合 local + remote,TTL 毫秒单位保持一致;远端失败优雅降级。
123+
- inflight 去重在本地层生效;失效复用命名空间键形状。
124+
- stream(find 流式)
125+
- 默认禁用缓存;与 maxTimeMS/slowQueryMs 联动,分段观测耗时。
126+
- 聚合(aggregate)
127+
- 阶段性:对 Mongo 先透传,跨库依赖 operators 映射,逐步覆盖 match/project/sort/limit。
128+
- 事件钩子/健康检查
129+
- on('connected'|'closed'|'error'|'slow-query');slow-query 输出“查询形状”与耗时阈值。
130+
- health() 返回连接状态、默认值视图、缓存层摘要(命中率/size,可选)。
131+
- 模块格式(ESM 条件导出)
132+
- package.json exports { require, import, types },不破坏 CJS 现有入口。
133+
- 运算符映射层
134+
- 先覆盖 =, !=, >, >=, <, <=, in, nin, and, or, not 及基本排序/投影;以适配器声明自身支持矩阵。
135+
136+
## 测试与质量建议(重点覆盖)
137+
- 深分页:首页/末页/方向切换、稳定排序校验、游标重复/过期。
138+
- 多层缓存:本地/远端命中与降级、命名空间失效、异常/超时后的 inflight 清理。
139+
- stream:背压与 maxTimeMS、缓存禁用验证、慢日志不泄露敏感值。
140+
- 聚合:Mongo 透传用例;跨库未实现时的明确错误/能力告知。
141+
- 事件钩子/health:事件触发顺序、异常路径、健康视图字段。
142+
- CI 建议:继续覆盖 Windows + Ubuntu;库类项目增加包体检查(npm pack)。
143+
144+
## 下一步(可执行清单)
145+
1) 设计与评审:深分页 API 草案 + 缓存分层接口草案。
146+
2) 补充里程碑细化:将 P0/P1 拆解到 [Unreleased] 并标注依赖。
147+
3) 实现与测试:优先落地深分页最小集 + 多层缓存骨架(远端可先 mock)。
148+
4) 文档:README 增加新能力示例;CHANGELOG 记录 Added/Changed。
149+
150+
> 更新时间:2025-08-25 16:55
151+
55152
## 关联
56153
- 历史变更:见 ./CHANGELOG.md
57154
- 入门与示例:见 ./README.md

0 commit comments

Comments
 (0)