fdb2 1.0.38 → 1.0.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/README.md +8 -1
  2. package/bin/fdb2.js +78 -3
  3. package/dist/public/explorer.css +403 -380
  4. package/dist/public/explorer.js +1294 -737
  5. package/dist/public/index.js +242 -16
  6. package/dist/public/layout.js +1 -1
  7. package/dist/scripts/verify-db-support.cjs +239 -0
  8. package/dist/server/core/dialect.d.ts +9 -0
  9. package/dist/server/core/dialect.d.ts.map +1 -1
  10. package/dist/server/core/dialect.js +24 -9
  11. package/dist/server/core/dialect.js.map +1 -1
  12. package/dist/server/core/dialect.ts +29 -9
  13. package/dist/server/core/schema/__tests__/ddl-emitter.test.ts +7 -3
  14. package/dist/server/core/schema/ddl-emitter.d.ts.map +1 -1
  15. package/dist/server/core/schema/ddl-emitter.js +32 -12
  16. package/dist/server/core/schema/ddl-emitter.js.map +1 -1
  17. package/dist/server/core/schema/ddl-emitter.ts +34 -11
  18. package/dist/server/index.d.ts.map +1 -1
  19. package/dist/server/index.js +83 -6
  20. package/dist/server/index.js.map +1 -1
  21. package/dist/server/index.ts +87 -6
  22. package/dist/server/model/ddl-spec.d.ts +9 -0
  23. package/dist/server/model/ddl-spec.d.ts.map +1 -1
  24. package/dist/server/model/ddl-spec.ts +9 -0
  25. package/dist/server/service/connection.service.d.ts +8 -0
  26. package/dist/server/service/connection.service.d.ts.map +1 -1
  27. package/dist/server/service/connection.service.js +75 -17
  28. package/dist/server/service/connection.service.js.map +1 -1
  29. package/dist/server/service/connection.service.ts +74 -17
  30. package/dist/server/service/database/base.service.d.ts +45 -0
  31. package/dist/server/service/database/base.service.d.ts.map +1 -1
  32. package/dist/server/service/database/base.service.js +120 -7
  33. package/dist/server/service/database/base.service.js.map +1 -1
  34. package/dist/server/service/database/base.service.ts +143 -8
  35. package/dist/server/service/database/cockroachdb.service.d.ts +9 -0
  36. package/dist/server/service/database/cockroachdb.service.d.ts.map +1 -1
  37. package/dist/server/service/database/cockroachdb.service.js +67 -56
  38. package/dist/server/service/database/cockroachdb.service.js.map +1 -1
  39. package/dist/server/service/database/cockroachdb.service.ts +66 -57
  40. package/dist/server/service/database/database.service.d.ts +3 -221
  41. package/dist/server/service/database/database.service.d.ts.map +1 -1
  42. package/dist/server/service/database/database.service.js +66 -24
  43. package/dist/server/service/database/database.service.js.map +1 -1
  44. package/dist/server/service/database/database.service.ts +69 -23
  45. package/dist/server/service/database/mongodb.service.d.ts +58 -3
  46. package/dist/server/service/database/mongodb.service.d.ts.map +1 -1
  47. package/dist/server/service/database/mongodb.service.js +251 -54
  48. package/dist/server/service/database/mongodb.service.js.map +1 -1
  49. package/dist/server/service/database/mongodb.service.ts +275 -60
  50. package/dist/server/service/database/mssql.service.d.ts +8 -0
  51. package/dist/server/service/database/mssql.service.d.ts.map +1 -1
  52. package/dist/server/service/database/mssql.service.js +41 -36
  53. package/dist/server/service/database/mssql.service.js.map +1 -1
  54. package/dist/server/service/database/mssql.service.ts +45 -40
  55. package/dist/server/service/database/oracle.service.d.ts +24 -0
  56. package/dist/server/service/database/oracle.service.d.ts.map +1 -1
  57. package/dist/server/service/database/oracle.service.js +146 -106
  58. package/dist/server/service/database/oracle.service.js.map +1 -1
  59. package/dist/server/service/database/oracle.service.ts +145 -105
  60. package/dist/server/service/database/sqlite.service.js +1 -1
  61. package/dist/server/service/database/sqlite.service.js.map +1 -1
  62. package/dist/server/service/database/sqlite.service.ts +1 -1
  63. package/package.json +8 -8
  64. package/scripts/verify-db-support.cjs +239 -0
@@ -34,24 +34,48 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.MongoDBService = void 0;
37
+ const mongodb_1 = require("mongodb");
37
38
  const base_service_1 = require("./base.service");
38
39
  const fs = __importStar(require("fs"));
39
40
  const path = __importStar(require("path"));
41
+ /**
42
+ * MongoDB 数据库只有在拥有至少一个集合后才会被持久化并出现在 listDatabases 中。
43
+ * 创建空库时保留一个占位集合作为"存在证明",并在 getTables 中过滤掉它,避免暴露垃圾集合。
44
+ */
45
+ const DB_INIT_MARKER = '__db_tool_init';
40
46
  /**
41
47
  * MongoDB数据库服务实现
42
- * MongoDB 是一个 NoSQL 文档数据库,与关系型数据库有很大不同
48
+ * MongoDB 是一个 NoSQL 文档数据库,与关系型数据库有很大不同。
49
+ *
50
+ * 重要:TypeORM 的 MongoDB 驱动不支持通过 dataSource.query() 执行 shell 命令字符串
51
+ * (如 `db.collection.find()`),那种写法永远无法工作。这里统一通过驱动持有的
52
+ * 原生 MongoClient(dataSource.driver.queryRunner.databaseConnection)直接操作,
53
+ * 这是唯一可靠的访问方式。
43
54
  */
44
55
  class MongoDBService extends base_service_1.BaseDatabaseService {
45
56
  getDatabaseType() {
46
57
  return 'mongodb';
47
58
  }
59
+ /**
60
+ * 获取驱动持有的原生 MongoClient
61
+ */
62
+ nativeClient(dataSource) {
63
+ return dataSource.driver.queryRunner.databaseConnection;
64
+ }
65
+ /**
66
+ * 获取指定数据库的原生 Db 句柄
67
+ */
68
+ nativeDb(dataSource, database) {
69
+ return this.nativeClient(dataSource).db(database);
70
+ }
48
71
  /**
49
72
  * 获取MongoDB数据库列表
50
73
  */
51
74
  async getDatabases(dataSource) {
52
75
  try {
53
- const result = await dataSource.query(`db.adminCommand({ listDatabases: 1 })`);
54
- return result.databases.map((db) => db.name).filter((name) => name !== 'admin' && name !== 'local' && name !== 'config');
76
+ const res = await this.nativeDb(dataSource, 'admin').admin().listDatabases();
77
+ return (res.databases || []).map((db) => db.name)
78
+ .filter((name) => name !== 'admin' && name !== 'local' && name !== 'config');
55
79
  }
56
80
  catch (error) {
57
81
  console.error('获取MongoDB数据库列表失败:', error);
@@ -63,10 +87,13 @@ class MongoDBService extends base_service_1.BaseDatabaseService {
63
87
  */
64
88
  async getTables(dataSource, database) {
65
89
  try {
66
- const result = await dataSource.query(`db.getCollectionNames()`);
67
- return result.map((collectionName) => ({
68
- name: collectionName,
69
- type: 'collection',
90
+ const db = this.nativeDb(dataSource, database);
91
+ const collections = await db.listCollections().toArray();
92
+ return collections
93
+ .filter((c) => c.name !== DB_INIT_MARKER)
94
+ .map((c) => ({
95
+ name: c.name,
96
+ type: c.type === 'view' ? 'view' : 'collection',
70
97
  rowCount: undefined,
71
98
  dataSize: undefined,
72
99
  indexSize: undefined
@@ -78,18 +105,19 @@ class MongoDBService extends base_service_1.BaseDatabaseService {
78
105
  }
79
106
  }
80
107
  /**
81
- * 获取MongoDB集合的字段信息(文档结构)
108
+ * 获取MongoDB集合的字段信息(文档结构,取一条样本推断)
82
109
  */
83
110
  async getColumns(dataSource, database, table) {
84
111
  try {
85
- const result = await dataSource.query(`db.${table}.findOne()`);
86
- if (!result) {
112
+ const db = this.nativeDb(dataSource, database);
113
+ const sample = await db.collection(table).findOne();
114
+ if (!sample) {
87
115
  return [];
88
116
  }
89
- const fields = Object.keys(result);
117
+ const fields = Object.keys(sample);
90
118
  return fields.map(field => ({
91
119
  name: field,
92
- type: this.inferType(result[field]),
120
+ type: this.inferType(sample[field]),
93
121
  nullable: true,
94
122
  defaultValue: undefined,
95
123
  isPrimary: field === '_id',
@@ -128,7 +156,7 @@ class MongoDBService extends base_service_1.BaseDatabaseService {
128
156
  else if (value instanceof Buffer) {
129
157
  return 'binData';
130
158
  }
131
- else if (value instanceof ObjectId) {
159
+ else if (value instanceof mongodb_1.ObjectId) {
132
160
  return 'objectId';
133
161
  }
134
162
  else {
@@ -137,13 +165,150 @@ class MongoDBService extends base_service_1.BaseDatabaseService {
137
165
  }
138
166
  return 'unknown';
139
167
  }
168
+ // ---------------------------------------------------------------- 文档查询辅助
169
+ /**
170
+ * 过滤条件:接受 JSON 对象或 JSON 字符串(如 {"status":"active"})。
171
+ * SQL WHERE 一律明确拒绝——静默忽略会变成"查全表",比报错更危险。
172
+ */
173
+ parseFilter(where) {
174
+ if (!where)
175
+ return {};
176
+ if (typeof where === 'object')
177
+ return where;
178
+ if (typeof where === 'string') {
179
+ const t = where.trim();
180
+ if (!t)
181
+ return {};
182
+ try {
183
+ const parsed = JSON.parse(t);
184
+ if (parsed && typeof parsed === 'object' && !Array.isArray(parsed))
185
+ return parsed;
186
+ }
187
+ catch {
188
+ throw new Error('MongoDB 过滤条件必须是 JSON(如 {"status":"active"}),不支持 SQL WHERE');
189
+ }
190
+ throw new Error('MongoDB 过滤条件必须是 JSON 对象(如 {"status":"active"})');
191
+ }
192
+ return {};
193
+ }
194
+ /** 排序:支持 {"name":1} / {"name":-1} / "name ASC, age DESC" */
195
+ parseSort(orderBy) {
196
+ if (!orderBy)
197
+ return undefined;
198
+ if (typeof orderBy === 'object') {
199
+ const out = {};
200
+ for (const k of Object.keys(orderBy))
201
+ out[k] = Number(orderBy[k]) < 0 ? -1 : 1;
202
+ return Object.keys(out).length ? out : undefined;
203
+ }
204
+ const t = orderBy.trim();
205
+ if (!t)
206
+ return undefined;
207
+ if (t.startsWith('{')) {
208
+ try {
209
+ return this.parseSort(JSON.parse(t));
210
+ }
211
+ catch {
212
+ throw new Error('MongoDB 排序条件必须是 JSON(如 {"name":1})');
213
+ }
214
+ }
215
+ const out = {};
216
+ for (const part of t.split(',')) {
217
+ const seg = part.trim().split(/\s+/).filter(Boolean);
218
+ if (!seg.length)
219
+ continue;
220
+ out[seg[0]] = /desc/i.test(seg[1] || '') ? -1 : 1;
221
+ }
222
+ return Object.keys(out).length ? out : undefined;
223
+ }
224
+ /** 24 位十六进制字符串转 ObjectId(否则按原值匹配,兼容非 ObjectId 主键) */
225
+ toObjectId(id) {
226
+ if (id instanceof mongodb_1.ObjectId)
227
+ return id;
228
+ if (typeof id === 'string' && /^[0-9a-fA-F]{24}$/.test(id)) {
229
+ try {
230
+ return new mongodb_1.ObjectId(id);
231
+ }
232
+ catch {
233
+ return id;
234
+ }
235
+ }
236
+ return id;
237
+ }
238
+ /** 过滤条件中的 _id 做 ObjectId 归一化(含 $in/$nin 数组与操作符对象) */
239
+ normalizeId(filter) {
240
+ if (!filter || typeof filter !== 'object')
241
+ return filter;
242
+ const out = { ...filter };
243
+ if (out._id === undefined)
244
+ return out;
245
+ const conv = (v) => {
246
+ if (Array.isArray(v))
247
+ return v.map(conv);
248
+ if (v && typeof v === 'object') {
249
+ const r = {};
250
+ for (const k of Object.keys(v))
251
+ r[k] = conv(v[k]);
252
+ return r;
253
+ }
254
+ return this.toObjectId(v);
255
+ };
256
+ out._id = conv(out._id);
257
+ return out;
258
+ }
259
+ /**
260
+ * 获取集合数据(文档模式):原生 find + sort + skip + limit,不走 SQL。
261
+ */
262
+ async getTableData(dataSource, databaseName, tableName, page = 1, pageSize = 100, where, orderBy) {
263
+ try {
264
+ const col = this.nativeDb(dataSource, databaseName).collection(tableName);
265
+ const filter = this.normalizeId(this.parseFilter(where));
266
+ const sort = this.parseSort(orderBy);
267
+ const total = await col.countDocuments(filter);
268
+ const cursor = col.find(filter);
269
+ if (sort)
270
+ cursor.sort(sort);
271
+ const data = await cursor
272
+ .skip(Math.max(0, (page - 1) * pageSize))
273
+ .limit(pageSize)
274
+ .toArray();
275
+ return { data, total };
276
+ }
277
+ catch (error) {
278
+ console.error('获取MongoDB集合数据失败:', error);
279
+ throw new Error(`获取集合数据失败: ${error instanceof Error ? error.message : String(error)}`);
280
+ }
281
+ }
282
+ /**
283
+ * 集合详情:在原生元数据(字段/索引)之上补 collStats(文档数/数据大小/索引大小)
284
+ */
285
+ async getTableInfo(dataSource, databaseName, tableName) {
286
+ const table = await super.getTableInfo(dataSource, databaseName, tableName);
287
+ try {
288
+ const stats = await this.nativeDb(dataSource, databaseName).command({ collStats: tableName });
289
+ table.rowCount = stats?.count;
290
+ table.dataSize = stats?.size;
291
+ table.indexSize = stats?.totalIndexSize;
292
+ }
293
+ catch {
294
+ // collStats 可能因权限不足失败:保持 undefined,不影响主流程
295
+ }
296
+ return table;
297
+ }
298
+ /**
299
+ * MongoDB 不支持 SQL:给出明确错误,而不是让驱动抛 "Queries aren't supported by MongoDB"
300
+ */
301
+ async executeQuery(_dataSource, _sql) {
302
+ throw new Error('MongoDB 不支持 SQL 查询,请使用文档查询(JSON 过滤条件)');
303
+ }
140
304
  /**
141
305
  * 获取MongoDB索引信息
142
306
  */
143
307
  async getIndexes(dataSource, database, table) {
144
308
  try {
145
- const result = await dataSource.query(`db.${table}.getIndexes()`);
146
- return result.map((index) => ({
309
+ const db = this.nativeDb(dataSource, database);
310
+ const indexes = await db.collection(table).indexes();
311
+ return indexes.map((index) => ({
147
312
  name: index.name,
148
313
  type: index.unique ? 'UNIQUE' : 'INDEX',
149
314
  columns: Object.keys(index.key),
@@ -166,8 +331,9 @@ class MongoDBService extends base_service_1.BaseDatabaseService {
166
331
  */
167
332
  async getDatabaseSize(dataSource, database) {
168
333
  try {
169
- const result = await dataSource.query(`db.stats({ scale: 1 })`);
170
- return result.dataSize || 0;
334
+ const db = this.nativeDb(dataSource, database);
335
+ const stats = await db.stats();
336
+ return stats.dataSize || 0;
171
337
  }
172
338
  catch (error) {
173
339
  console.error('获取MongoDB数据库大小失败:', error);
@@ -199,12 +365,17 @@ class MongoDBService extends base_service_1.BaseDatabaseService {
199
365
  throw new Error('MongoDB不支持存储过程');
200
366
  }
201
367
  /**
202
- * 创建MongoDB数据库
368
+ * 创建MongoDB数据库(通过创建再删除一个临时集合来物化数据库)
203
369
  */
204
370
  async createDatabase(dataSource, databaseName, options) {
205
371
  try {
206
- await dataSource.query(`db.getSiblingDB('${databaseName}').createCollection('temp')`);
207
- await dataSource.query(`db.getSiblingDB('${databaseName}').temp.drop()`);
372
+ const db = this.nativeDb(dataSource, databaseName);
373
+ // MongoDB 没有"空数据库"的概念:数据库只有在拥有至少一个集合后才会被持久化,
374
+ // 并出现在 listDatabases 中。因此保留一个占位集合,否则刚创建的库在 getDatabases 中不可见。
375
+ const existing = await db.listCollections({ name: DB_INIT_MARKER }).toArray();
376
+ if (existing.length === 0) {
377
+ await db.createCollection(DB_INIT_MARKER);
378
+ }
208
379
  }
209
380
  catch (error) {
210
381
  console.error('创建MongoDB数据库失败:', error);
@@ -216,7 +387,7 @@ class MongoDBService extends base_service_1.BaseDatabaseService {
216
387
  */
217
388
  async dropDatabase(dataSource, databaseName) {
218
389
  try {
219
- await dataSource.query(`db.getSiblingDB('${databaseName}').dropDatabase()`);
390
+ await this.nativeDb(dataSource, databaseName).dropDatabase();
220
391
  }
221
392
  catch (error) {
222
393
  console.error('删除MongoDB数据库失败:', error);
@@ -254,8 +425,8 @@ class MongoDBService extends base_service_1.BaseDatabaseService {
254
425
  */
255
426
  async viewLogs(dataSource, database, limit = 100) {
256
427
  try {
257
- const result = await dataSource.query(`db.getSiblingDB('admin').adminCommand({ getLog: 'global' })`);
258
- return result.log || [];
428
+ const res = await this.nativeDb(dataSource, 'admin').admin().command({ getLog: 'global' });
429
+ return (res.log || []).slice(0, limit);
259
430
  }
260
431
  catch (error) {
261
432
  console.error('获取MongoDB日志失败:', error);
@@ -273,6 +444,7 @@ class MongoDBService extends base_service_1.BaseDatabaseService {
273
444
  }
274
445
  const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
275
446
  const backupFile = path.join(backupPath, `${databaseName}_${timestamp}.json`);
447
+ const db = this.nativeDb(dataSource, databaseName);
276
448
  const collections = await this.getTables(dataSource, databaseName);
277
449
  const backupData = {
278
450
  database: databaseName,
@@ -280,8 +452,8 @@ class MongoDBService extends base_service_1.BaseDatabaseService {
280
452
  collections: {}
281
453
  };
282
454
  for (const collection of collections) {
283
- const result = await dataSource.query(`db.${collection.name}.find().toArray()`);
284
- backupData.collections[collection.name] = result;
455
+ const docs = await db.collection(collection.name).find().toArray();
456
+ backupData.collections[collection.name] = docs;
285
457
  }
286
458
  fs.writeFileSync(backupFile, JSON.stringify(backupData, null, 2), 'utf8');
287
459
  return `备份成功:${backupFile}`;
@@ -297,10 +469,11 @@ class MongoDBService extends base_service_1.BaseDatabaseService {
297
469
  async restoreDatabase(dataSource, databaseName, filePath, options) {
298
470
  try {
299
471
  const backupData = JSON.parse(fs.readFileSync(filePath, 'utf8'));
472
+ const db = this.nativeDb(dataSource, databaseName);
300
473
  for (const collectionName in backupData.collections) {
301
474
  const documents = backupData.collections[collectionName];
302
475
  if (documents.length > 0) {
303
- await dataSource.query(`db.${collectionName}.insertMany(${JSON.stringify(documents)})`);
476
+ await db.collection(collectionName).insertMany(documents);
304
477
  }
305
478
  }
306
479
  }
@@ -326,7 +499,8 @@ class MongoDBService extends base_service_1.BaseDatabaseService {
326
499
  }
327
500
  const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
328
501
  const exportFile = path.join(exportPath, `${tableName}_data_${timestamp}.csv`);
329
- const result = await dataSource.query(`db.${tableName}.find().toArray()`);
502
+ const db = this.nativeDb(dataSource, databaseName);
503
+ const result = await db.collection(tableName).find().toArray();
330
504
  if (result.length === 0) {
331
505
  fs.writeFileSync(exportFile, '', 'utf8');
332
506
  return exportFile;
@@ -382,7 +556,8 @@ class MongoDBService extends base_service_1.BaseDatabaseService {
382
556
  }
383
557
  const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
384
558
  const exportFile = path.join(exportPath, `${tableName}_data_${timestamp}.json`);
385
- const result = await dataSource.query(`db.${tableName}.find().toArray()`);
559
+ const db = this.nativeDb(dataSource, databaseName);
560
+ const result = await db.collection(tableName).find().toArray();
386
561
  fs.writeFileSync(exportFile, JSON.stringify(result, null, 2), 'utf8');
387
562
  return exportFile;
388
563
  }
@@ -402,7 +577,8 @@ class MongoDBService extends base_service_1.BaseDatabaseService {
402
577
  }
403
578
  const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
404
579
  const exportFile = path.join(exportPath, `${tableName}_data_${timestamp}.xlsx`);
405
- const result = await dataSource.query(`db.${tableName}.find().toArray()`);
580
+ const db = this.nativeDb(dataSource, databaseName);
581
+ const result = await db.collection(tableName).find().toArray();
406
582
  const columns = await this.getColumns(dataSource, databaseName, tableName);
407
583
  const columnNames = columns.map(column => column.name);
408
584
  const ExcelJS = require('exceljs');
@@ -446,49 +622,70 @@ class MongoDBService extends base_service_1.BaseDatabaseService {
446
622
  async bulkInsert(dataSource, databaseName, tableName, data) {
447
623
  if (data.length === 0)
448
624
  return;
449
- // MongoDB使用Repository模式
450
- const repository = dataSource.getMongoRepository(tableName);
451
- await repository.insertMany(data);
625
+ const db = this.nativeDb(dataSource, databaseName);
626
+ await db.collection(tableName).insertMany(data);
452
627
  }
453
628
  /**
454
629
  * 插入单条数据
455
630
  */
456
631
  async insertData(dataSource, databaseName, tableName, data) {
457
- // MongoDB使用Repository模式
458
- const repository = dataSource.getMongoRepository(tableName);
459
- await repository.insertOne(data);
632
+ const db = this.nativeDb(dataSource, databaseName);
633
+ await db.collection(tableName).insertOne(data);
460
634
  }
461
635
  /**
462
636
  * 删除表(集合)
463
637
  */
464
638
  async dropTable(dataSource, databaseName, tableName) {
465
- // MongoDB使用Repository模式
466
- const repository = dataSource.getMongoRepository(tableName);
467
- await repository.deleteMany({});
639
+ const db = this.nativeDb(dataSource, databaseName);
640
+ await db.collection(tableName).drop();
468
641
  }
469
642
  /**
470
643
  * 创建表(集合)
471
644
  */
472
645
  async createTable(dataSource, databaseName, table) {
473
646
  const { name } = table;
474
- // MongoDB会自动创建集合,无需显式创建
475
- await this.insertData(dataSource, databaseName, name, {});
476
- await this.dropTable(dataSource, databaseName, name);
647
+ const db = this.nativeDb(dataSource, databaseName);
648
+ await db.createCollection(name);
477
649
  }
478
- }
479
- exports.MongoDBService = MongoDBService;
480
- /**
481
- * ObjectId 类型定义
482
- */
483
- class ObjectId {
484
- constructor(id) {
485
- if (id) {
486
- this.id = id;
487
- }
650
+ // ---------------------------------------------------------------- 文档级操作(document 模式)
651
+ /** 按 _id 更新文档:$set 语义,_id 本身不可修改 */
652
+ async updateDocument(dataSource, databaseName, tableName, docId, document) {
653
+ const col = this.nativeDb(dataSource, databaseName).collection(tableName);
654
+ const { _id, ...rest } = document || {};
655
+ await col.updateOne({ _id: this.toObjectId(docId) }, { $set: rest });
488
656
  }
489
- id;
490
- toString() {
491
- return this.id || '';
657
+ /** 按 _id 删除文档 */
658
+ async deleteDocument(dataSource, databaseName, tableName, docId) {
659
+ const col = this.nativeDb(dataSource, databaseName).collection(tableName);
660
+ await col.deleteOne({ _id: this.toObjectId(docId) });
661
+ }
662
+ /** 插入单个文档,返回 insertedId */
663
+ async insertDocument(dataSource, databaseName, tableName, document) {
664
+ const col = this.nativeDb(dataSource, databaseName).collection(tableName);
665
+ const res = await col.insertOne(document);
666
+ return { insertedId: res.insertedId };
667
+ }
668
+ /** 清空集合(保留集合与索引),返回删除条数 */
669
+ async truncateCollection(dataSource, databaseName, tableName) {
670
+ const col = this.nativeDb(dataSource, databaseName).collection(tableName);
671
+ const res = await col.deleteMany({});
672
+ return res.deletedCount ?? 0;
673
+ }
674
+ /** 创建索引:keys 形如 { name: 1 } 或 { "a.b": -1 } */
675
+ async createIndex(dataSource, databaseName, tableName, keys, options) {
676
+ const col = this.nativeDb(dataSource, databaseName).collection(tableName);
677
+ return col.createIndex(keys, options || {});
678
+ }
679
+ /** 删除索引 */
680
+ async dropIndex(dataSource, databaseName, tableName, indexName) {
681
+ const col = this.nativeDb(dataSource, databaseName).collection(tableName);
682
+ await col.dropIndex(indexName);
683
+ }
684
+ /** 聚合管道(聚合构建器 / 高级查询) */
685
+ async aggregate(dataSource, databaseName, tableName, pipeline) {
686
+ const col = this.nativeDb(dataSource, databaseName).collection(tableName);
687
+ return col.aggregate(Array.isArray(pipeline) ? pipeline : []).toArray();
492
688
  }
493
689
  }
690
+ exports.MongoDBService = MongoDBService;
494
691
  //# sourceMappingURL=mongodb.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mongodb.service.js","sourceRoot":"","sources":["../../../../server/service/database/mongodb.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mongodb.service.js","sourceRoot":"","sources":["../../../../server/service/database/mongodb.service.ts"],"names":[],"mappings":"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"}