nx-mongo 3.3.0 → 3.4.0
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.
- package/README.md +152 -1
- package/dist/simpleMongoHelper.d.ts +32 -0
- package/dist/simpleMongoHelper.d.ts.map +1 -1
- package/dist/simpleMongoHelper.js +286 -0
- package/dist/simpleMongoHelper.js.map +1 -1
- package/package.json +1 -1
- package/src/simpleMongoHelper.ts +332 -0
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# nx-mongo
|
|
2
2
|
|
|
3
|
-
**Version:** 3.
|
|
3
|
+
**Version:** 3.4.0
|
|
4
4
|
|
|
5
5
|
A lightweight, feature-rich MongoDB helper library for Node.js and TypeScript. Provides a simple, intuitive API for common MongoDB operations with built-in retry logic, pagination, transactions, config-driven ref mapping, and signature-based deduplication.
|
|
6
6
|
|
|
@@ -287,6 +287,122 @@ await helper.delete('users', { email: 'john@example.com' });
|
|
|
287
287
|
await helper.delete('users', { role: 'guest' }, { multi: true });
|
|
288
288
|
```
|
|
289
289
|
|
|
290
|
+
### Collection Merge Methods
|
|
291
|
+
|
|
292
|
+
#### `mergeCollections(options: MergeCollectionsOptions): Promise<MergeCollectionsResult>`
|
|
293
|
+
|
|
294
|
+
Merges two collections into a new target collection using various strategies (index-based, key-based, or composite-key). Useful for combining original records with assessment results or joining related data.
|
|
295
|
+
|
|
296
|
+
**Parameters:**
|
|
297
|
+
- `sourceCollection1` - Name of first source collection (e.g., original records)
|
|
298
|
+
- `sourceCollection2` - Name of second source collection (e.g., assessment results)
|
|
299
|
+
- `targetCollection` - Name of target collection for merged results
|
|
300
|
+
- `strategy` - Merge strategy: `'index' | 'key' | 'composite'`
|
|
301
|
+
- `key` - (For 'key' strategy) Field name to match on (supports dot notation)
|
|
302
|
+
- `compositeKeys` - (For 'composite' strategy) Array of field names for composite key matching
|
|
303
|
+
- `fieldPrefix1` - Prefix for fields from collection 1 (default: 'record')
|
|
304
|
+
- `fieldPrefix2` - Prefix for fields from collection 2 (default: 'assessment')
|
|
305
|
+
- `includeIndex` - Include original index in merged document (default: true for index strategy)
|
|
306
|
+
- `onUnmatched1` - What to do with unmatched records from collection 1: 'include' | 'skip' (default: 'include')
|
|
307
|
+
- `onUnmatched2` - What to do with unmatched records from collection 2: 'include' | 'skip' (default: 'include')
|
|
308
|
+
- `session` - Optional transaction session
|
|
309
|
+
|
|
310
|
+
**Returns:**
|
|
311
|
+
```typescript
|
|
312
|
+
interface MergeCollectionsResult {
|
|
313
|
+
merged: number; // Total merged documents
|
|
314
|
+
unmatched1: number; // Unmatched documents from collection 1
|
|
315
|
+
unmatched2: number; // Unmatched documents from collection 2
|
|
316
|
+
errors: Array<{ index: number; error: Error; doc?: any }>;
|
|
317
|
+
}
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
**Strategies:**
|
|
321
|
+
|
|
322
|
+
1. **Index-based** (`strategy: 'index'`): Merges by array position. Assumes both collections are in the same order.
|
|
323
|
+
```typescript
|
|
324
|
+
const result = await helper.mergeCollections({
|
|
325
|
+
sourceCollection1: 'original_records',
|
|
326
|
+
sourceCollection2: 'assessments',
|
|
327
|
+
targetCollection: 'merged_results',
|
|
328
|
+
strategy: 'index',
|
|
329
|
+
fieldPrefix1: 'record',
|
|
330
|
+
fieldPrefix2: 'assessment',
|
|
331
|
+
includeIndex: true
|
|
332
|
+
});
|
|
333
|
+
// Result: { recordIndex: 0, record: {...}, assessment: {...} }
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
2. **Key-based** (`strategy: 'key'`): Merges by matching a single unique field.
|
|
337
|
+
```typescript
|
|
338
|
+
const result = await helper.mergeCollections({
|
|
339
|
+
sourceCollection1: 'applications',
|
|
340
|
+
sourceCollection2: 'assessments',
|
|
341
|
+
targetCollection: 'merged',
|
|
342
|
+
strategy: 'key',
|
|
343
|
+
key: 'id', // or 'meta.id' for nested fields
|
|
344
|
+
fieldPrefix1: 'app',
|
|
345
|
+
fieldPrefix2: 'assessment'
|
|
346
|
+
});
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
3. **Composite-key** (`strategy: 'composite'`): Merges by matching multiple fields (e.g., name + ports + zones).
|
|
350
|
+
```typescript
|
|
351
|
+
const result = await helper.mergeCollections({
|
|
352
|
+
sourceCollection1: 'original_records',
|
|
353
|
+
sourceCollection2: 'assessments',
|
|
354
|
+
targetCollection: 'merged',
|
|
355
|
+
strategy: 'composite',
|
|
356
|
+
compositeKeys: ['name', 'ports[]', 'zones[]'], // Arrays are sorted for matching
|
|
357
|
+
fieldPrefix1: 'record',
|
|
358
|
+
fieldPrefix2: 'assessment'
|
|
359
|
+
});
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
**Examples:**
|
|
363
|
+
|
|
364
|
+
```typescript
|
|
365
|
+
// Index-based merge (fast but requires same order)
|
|
366
|
+
const result1 = await helper.mergeCollections({
|
|
367
|
+
sourceCollection1: 'records',
|
|
368
|
+
sourceCollection2: 'assessments',
|
|
369
|
+
targetCollection: 'merged',
|
|
370
|
+
strategy: 'index'
|
|
371
|
+
});
|
|
372
|
+
console.log(`Merged ${result1.merged} documents, ${result1.unmatched1} unmatched from collection 1`);
|
|
373
|
+
|
|
374
|
+
// Key-based merge (safer, uses unique identifier)
|
|
375
|
+
const result2 = await helper.mergeCollections({
|
|
376
|
+
sourceCollection1: 'apps',
|
|
377
|
+
sourceCollection2: 'assessments',
|
|
378
|
+
targetCollection: 'merged',
|
|
379
|
+
strategy: 'key',
|
|
380
|
+
key: 'appId',
|
|
381
|
+
onUnmatched1: 'include', // Include apps without assessments
|
|
382
|
+
onUnmatched2: 'skip' // Skip assessments without matching apps
|
|
383
|
+
});
|
|
384
|
+
|
|
385
|
+
// Composite-key merge (for records without unique IDs)
|
|
386
|
+
const result3 = await helper.mergeCollections({
|
|
387
|
+
sourceCollection1: 'original',
|
|
388
|
+
sourceCollection2: 'assessments',
|
|
389
|
+
targetCollection: 'merged',
|
|
390
|
+
strategy: 'composite',
|
|
391
|
+
compositeKeys: ['name', 'ports[]', 'zones[]'],
|
|
392
|
+
fieldPrefix1: 'record',
|
|
393
|
+
fieldPrefix2: 'assessment',
|
|
394
|
+
includeIndex: true
|
|
395
|
+
});
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
**Notes:**
|
|
399
|
+
- Index-based merging is fast but fragile if collections are reordered
|
|
400
|
+
- Key-based merging is safer and recommended when you have unique identifiers
|
|
401
|
+
- Composite-key merging handles cases where no single unique field exists
|
|
402
|
+
- Array fields in composite keys are automatically sorted for consistent matching
|
|
403
|
+
- Supports dot notation for nested fields (e.g., `'meta.id'`, `'ports[]'`)
|
|
404
|
+
- Transaction support available via `session` option
|
|
405
|
+
|
|
290
406
|
### Count Methods
|
|
291
407
|
|
|
292
408
|
#### `countDocuments<T>(collectionName: string, query?: Filter<T>): Promise<number>`
|
|
@@ -1041,6 +1157,32 @@ interface WriteStageResult extends WriteByRefResult {
|
|
|
1041
1157
|
}
|
|
1042
1158
|
```
|
|
1043
1159
|
|
|
1160
|
+
### Merge Collections Interfaces
|
|
1161
|
+
|
|
1162
|
+
```typescript
|
|
1163
|
+
interface MergeCollectionsOptions {
|
|
1164
|
+
sourceCollection1: string;
|
|
1165
|
+
sourceCollection2: string;
|
|
1166
|
+
targetCollection: string;
|
|
1167
|
+
strategy: 'index' | 'key' | 'composite';
|
|
1168
|
+
key?: string;
|
|
1169
|
+
compositeKeys?: string[];
|
|
1170
|
+
fieldPrefix1?: string;
|
|
1171
|
+
fieldPrefix2?: string;
|
|
1172
|
+
includeIndex?: boolean;
|
|
1173
|
+
onUnmatched1?: 'include' | 'skip';
|
|
1174
|
+
onUnmatched2?: 'include' | 'skip';
|
|
1175
|
+
session?: ClientSession;
|
|
1176
|
+
}
|
|
1177
|
+
|
|
1178
|
+
interface MergeCollectionsResult {
|
|
1179
|
+
merged: number;
|
|
1180
|
+
unmatched1: number;
|
|
1181
|
+
unmatched2: number;
|
|
1182
|
+
errors: Array<{ index: number; error: Error; doc?: any }>;
|
|
1183
|
+
}
|
|
1184
|
+
```
|
|
1185
|
+
|
|
1044
1186
|
## Error Handling
|
|
1045
1187
|
|
|
1046
1188
|
All methods throw errors with descriptive messages. Always wrap operations in try-catch blocks:
|
|
@@ -1093,6 +1235,15 @@ Contributions are welcome! Please feel free to submit a Pull Request.
|
|
|
1093
1235
|
|
|
1094
1236
|
## Changelog
|
|
1095
1237
|
|
|
1238
|
+
### 3.4.0
|
|
1239
|
+
- Added `mergeCollections()` method for merging two collections into a new target collection
|
|
1240
|
+
- Supports three merge strategies: index-based, key-based, and composite-key merging
|
|
1241
|
+
- Index-based merging for same-order collections
|
|
1242
|
+
- Key-based merging using unique identifiers (supports dot notation)
|
|
1243
|
+
- Composite-key merging using multiple fields (e.g., name + ports + zones)
|
|
1244
|
+
- Configurable field prefixes and unmatched record handling
|
|
1245
|
+
- Transaction support for atomic merge operations
|
|
1246
|
+
|
|
1096
1247
|
### 3.3.0
|
|
1097
1248
|
- Added `testConnection()` method for detailed connection testing and error diagnostics
|
|
1098
1249
|
- Package renamed from `nx-mongodb-helper` to `nx-mongo` (shorter, cleaner name)
|
|
@@ -112,6 +112,30 @@ export interface WriteStageOptions {
|
|
|
112
112
|
export interface WriteStageResult extends WriteByRefResult {
|
|
113
113
|
completed?: boolean;
|
|
114
114
|
}
|
|
115
|
+
export interface MergeCollectionsOptions {
|
|
116
|
+
sourceCollection1: string;
|
|
117
|
+
sourceCollection2: string;
|
|
118
|
+
targetCollection: string;
|
|
119
|
+
strategy: 'index' | 'key' | 'composite';
|
|
120
|
+
key?: string;
|
|
121
|
+
compositeKeys?: string[];
|
|
122
|
+
fieldPrefix1?: string;
|
|
123
|
+
fieldPrefix2?: string;
|
|
124
|
+
includeIndex?: boolean;
|
|
125
|
+
onUnmatched1?: 'include' | 'skip';
|
|
126
|
+
onUnmatched2?: 'include' | 'skip';
|
|
127
|
+
session?: ClientSession;
|
|
128
|
+
}
|
|
129
|
+
export interface MergeCollectionsResult {
|
|
130
|
+
merged: number;
|
|
131
|
+
unmatched1: number;
|
|
132
|
+
unmatched2: number;
|
|
133
|
+
errors: Array<{
|
|
134
|
+
index: number;
|
|
135
|
+
error: Error;
|
|
136
|
+
doc?: any;
|
|
137
|
+
}>;
|
|
138
|
+
}
|
|
115
139
|
/**
|
|
116
140
|
* Extracts values from an object using dot-notation paths with array wildcard support.
|
|
117
141
|
* Supports nested object paths (dot notation) and array wildcards ([]) to collect values from all array elements.
|
|
@@ -340,6 +364,14 @@ export declare class SimpleMongoHelper {
|
|
|
340
364
|
* @throws Error if ref not found in config or not initialized
|
|
341
365
|
*/
|
|
342
366
|
writeStage(ref: string, documents: any[], options?: WriteStageOptions): Promise<WriteStageResult>;
|
|
367
|
+
/**
|
|
368
|
+
* Merges two collections into a new target collection using various strategies.
|
|
369
|
+
* Supports index-based, key-based, and composite-key merging.
|
|
370
|
+
* @param options - Merge configuration options
|
|
371
|
+
* @returns Result object with merge statistics
|
|
372
|
+
* @throws Error if not initialized or if merge fails
|
|
373
|
+
*/
|
|
374
|
+
mergeCollections(options: MergeCollectionsOptions): Promise<MergeCollectionsResult>;
|
|
343
375
|
/**
|
|
344
376
|
* Closes the MongoDB connection and cleans up resources.
|
|
345
377
|
* @throws Error if disconnect fails
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simpleMongoHelper.d.ts","sourceRoot":"","sources":["../src/simpleMongoHelper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"simpleMongoHelper.d.ts","sourceRoot":"","sources":["../src/simpleMongoHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1273,6 +1273,292 @@ class SimpleMongoHelper {
|
|
|
1273
1273
|
}
|
|
1274
1274
|
return result;
|
|
1275
1275
|
}
|
|
1276
|
+
/**
|
|
1277
|
+
* Merges two collections into a new target collection using various strategies.
|
|
1278
|
+
* Supports index-based, key-based, and composite-key merging.
|
|
1279
|
+
* @param options - Merge configuration options
|
|
1280
|
+
* @returns Result object with merge statistics
|
|
1281
|
+
* @throws Error if not initialized or if merge fails
|
|
1282
|
+
*/
|
|
1283
|
+
async mergeCollections(options) {
|
|
1284
|
+
this.ensureInitialized();
|
|
1285
|
+
const { sourceCollection1, sourceCollection2, targetCollection, strategy, key, compositeKeys, fieldPrefix1 = 'record', fieldPrefix2 = 'assessment', includeIndex = strategy === 'index', onUnmatched1 = 'include', onUnmatched2 = 'include', session, } = options;
|
|
1286
|
+
const result = {
|
|
1287
|
+
merged: 0,
|
|
1288
|
+
unmatched1: 0,
|
|
1289
|
+
unmatched2: 0,
|
|
1290
|
+
errors: [],
|
|
1291
|
+
};
|
|
1292
|
+
try {
|
|
1293
|
+
const coll1 = this.db.collection(sourceCollection1);
|
|
1294
|
+
const coll2 = this.db.collection(sourceCollection2);
|
|
1295
|
+
const targetColl = this.db.collection(targetCollection);
|
|
1296
|
+
const findOptions = {};
|
|
1297
|
+
if (session) {
|
|
1298
|
+
findOptions.session = session;
|
|
1299
|
+
}
|
|
1300
|
+
// Load all documents from both collections
|
|
1301
|
+
const docs1 = await coll1.find({}, findOptions).toArray();
|
|
1302
|
+
const docs2 = await coll2.find({}, findOptions).toArray();
|
|
1303
|
+
const mergedDocs = [];
|
|
1304
|
+
if (strategy === 'index') {
|
|
1305
|
+
// Index-based merging - assumes same order
|
|
1306
|
+
const maxLength = Math.max(docs1.length, docs2.length);
|
|
1307
|
+
for (let i = 0; i < maxLength; i++) {
|
|
1308
|
+
const doc1 = docs1[i];
|
|
1309
|
+
const doc2 = docs2[i];
|
|
1310
|
+
const merged = {};
|
|
1311
|
+
if (includeIndex) {
|
|
1312
|
+
merged.recordIndex = i;
|
|
1313
|
+
}
|
|
1314
|
+
if (doc1) {
|
|
1315
|
+
if (fieldPrefix1) {
|
|
1316
|
+
merged[fieldPrefix1] = doc1;
|
|
1317
|
+
}
|
|
1318
|
+
else {
|
|
1319
|
+
Object.assign(merged, doc1);
|
|
1320
|
+
}
|
|
1321
|
+
}
|
|
1322
|
+
else if (onUnmatched1 === 'include') {
|
|
1323
|
+
if (fieldPrefix1) {
|
|
1324
|
+
merged[fieldPrefix1] = null;
|
|
1325
|
+
}
|
|
1326
|
+
result.unmatched1++;
|
|
1327
|
+
}
|
|
1328
|
+
if (doc2) {
|
|
1329
|
+
if (fieldPrefix2) {
|
|
1330
|
+
merged[fieldPrefix2] = doc2;
|
|
1331
|
+
}
|
|
1332
|
+
else {
|
|
1333
|
+
Object.assign(merged, doc2);
|
|
1334
|
+
}
|
|
1335
|
+
}
|
|
1336
|
+
else if (onUnmatched2 === 'include') {
|
|
1337
|
+
if (fieldPrefix2) {
|
|
1338
|
+
merged[fieldPrefix2] = null;
|
|
1339
|
+
}
|
|
1340
|
+
result.unmatched2++;
|
|
1341
|
+
}
|
|
1342
|
+
if (doc1 || doc2) {
|
|
1343
|
+
mergedDocs.push(merged);
|
|
1344
|
+
result.merged++;
|
|
1345
|
+
}
|
|
1346
|
+
}
|
|
1347
|
+
}
|
|
1348
|
+
else if (strategy === 'key') {
|
|
1349
|
+
if (!key) {
|
|
1350
|
+
throw new Error('Key strategy requires a "key" option specifying the field name to match on');
|
|
1351
|
+
}
|
|
1352
|
+
// Build index for collection 2 by key
|
|
1353
|
+
const index2 = new Map();
|
|
1354
|
+
for (const doc of docs2) {
|
|
1355
|
+
const keyValue = getByDotPath(doc, key)[0];
|
|
1356
|
+
if (keyValue !== undefined && keyValue !== null) {
|
|
1357
|
+
const keyStr = String(keyValue);
|
|
1358
|
+
if (!index2.has(keyStr)) {
|
|
1359
|
+
index2.set(keyStr, []);
|
|
1360
|
+
}
|
|
1361
|
+
index2.get(keyStr).push(doc);
|
|
1362
|
+
}
|
|
1363
|
+
}
|
|
1364
|
+
// Match documents from collection 1 with collection 2
|
|
1365
|
+
const matched2 = new Set();
|
|
1366
|
+
for (let i = 0; i < docs1.length; i++) {
|
|
1367
|
+
const doc1 = docs1[i];
|
|
1368
|
+
const keyValue = getByDotPath(doc1, key)[0];
|
|
1369
|
+
const keyStr = keyValue !== undefined && keyValue !== null ? String(keyValue) : null;
|
|
1370
|
+
const merged = {};
|
|
1371
|
+
if (includeIndex) {
|
|
1372
|
+
merged.recordIndex = i;
|
|
1373
|
+
}
|
|
1374
|
+
if (fieldPrefix1) {
|
|
1375
|
+
merged[fieldPrefix1] = doc1;
|
|
1376
|
+
}
|
|
1377
|
+
else {
|
|
1378
|
+
Object.assign(merged, doc1);
|
|
1379
|
+
}
|
|
1380
|
+
if (keyStr && index2.has(keyStr)) {
|
|
1381
|
+
const matches = index2.get(keyStr);
|
|
1382
|
+
const doc2 = matches.shift(); // Consume first match
|
|
1383
|
+
if (matches.length === 0) {
|
|
1384
|
+
index2.delete(keyStr);
|
|
1385
|
+
}
|
|
1386
|
+
if (doc2) {
|
|
1387
|
+
const doc2Index = docs2.indexOf(doc2);
|
|
1388
|
+
if (doc2Index >= 0) {
|
|
1389
|
+
matched2.add(doc2Index);
|
|
1390
|
+
}
|
|
1391
|
+
if (fieldPrefix2) {
|
|
1392
|
+
merged[fieldPrefix2] = doc2;
|
|
1393
|
+
}
|
|
1394
|
+
else {
|
|
1395
|
+
Object.assign(merged, doc2);
|
|
1396
|
+
}
|
|
1397
|
+
}
|
|
1398
|
+
}
|
|
1399
|
+
else if (onUnmatched1 === 'include') {
|
|
1400
|
+
if (fieldPrefix2) {
|
|
1401
|
+
merged[fieldPrefix2] = null;
|
|
1402
|
+
}
|
|
1403
|
+
result.unmatched1++;
|
|
1404
|
+
}
|
|
1405
|
+
mergedDocs.push(merged);
|
|
1406
|
+
result.merged++;
|
|
1407
|
+
}
|
|
1408
|
+
// Add unmatched documents from collection 2
|
|
1409
|
+
if (onUnmatched2 === 'include') {
|
|
1410
|
+
for (let i = 0; i < docs2.length; i++) {
|
|
1411
|
+
if (!matched2.has(i)) {
|
|
1412
|
+
const merged = {};
|
|
1413
|
+
if (includeIndex) {
|
|
1414
|
+
merged.recordIndex = null;
|
|
1415
|
+
}
|
|
1416
|
+
if (fieldPrefix1) {
|
|
1417
|
+
merged[fieldPrefix1] = null;
|
|
1418
|
+
}
|
|
1419
|
+
if (fieldPrefix2) {
|
|
1420
|
+
merged[fieldPrefix2] = docs2[i];
|
|
1421
|
+
}
|
|
1422
|
+
else {
|
|
1423
|
+
Object.assign(merged, docs2[i]);
|
|
1424
|
+
}
|
|
1425
|
+
mergedDocs.push(merged);
|
|
1426
|
+
result.merged++;
|
|
1427
|
+
result.unmatched2++;
|
|
1428
|
+
}
|
|
1429
|
+
}
|
|
1430
|
+
}
|
|
1431
|
+
}
|
|
1432
|
+
else if (strategy === 'composite') {
|
|
1433
|
+
if (!compositeKeys || compositeKeys.length === 0) {
|
|
1434
|
+
throw new Error('Composite strategy requires "compositeKeys" option specifying array of field names');
|
|
1435
|
+
}
|
|
1436
|
+
// Helper function to build composite key
|
|
1437
|
+
const buildCompositeKey = (doc) => {
|
|
1438
|
+
const keyParts = [];
|
|
1439
|
+
for (const keyField of compositeKeys) {
|
|
1440
|
+
const values = getByDotPath(doc, keyField);
|
|
1441
|
+
// Sort array values for consistent matching
|
|
1442
|
+
const sortedValues = Array.isArray(values[0])
|
|
1443
|
+
? values.map(v => Array.isArray(v) ? v.sort() : v)
|
|
1444
|
+
: values;
|
|
1445
|
+
keyParts.push(JSON.stringify(sortedValues));
|
|
1446
|
+
}
|
|
1447
|
+
return keyParts.join('|');
|
|
1448
|
+
};
|
|
1449
|
+
// Build index for collection 2 by composite key
|
|
1450
|
+
const index2 = new Map();
|
|
1451
|
+
for (const doc of docs2) {
|
|
1452
|
+
const compositeKey = buildCompositeKey(doc);
|
|
1453
|
+
if (!index2.has(compositeKey)) {
|
|
1454
|
+
index2.set(compositeKey, []);
|
|
1455
|
+
}
|
|
1456
|
+
index2.get(compositeKey).push(doc);
|
|
1457
|
+
}
|
|
1458
|
+
// Match documents from collection 1 with collection 2
|
|
1459
|
+
const matched2 = new Set();
|
|
1460
|
+
for (let i = 0; i < docs1.length; i++) {
|
|
1461
|
+
const doc1 = docs1[i];
|
|
1462
|
+
const compositeKey = buildCompositeKey(doc1);
|
|
1463
|
+
const merged = {};
|
|
1464
|
+
if (includeIndex) {
|
|
1465
|
+
merged.recordIndex = i;
|
|
1466
|
+
}
|
|
1467
|
+
if (fieldPrefix1) {
|
|
1468
|
+
merged[fieldPrefix1] = doc1;
|
|
1469
|
+
}
|
|
1470
|
+
else {
|
|
1471
|
+
Object.assign(merged, doc1);
|
|
1472
|
+
}
|
|
1473
|
+
if (index2.has(compositeKey)) {
|
|
1474
|
+
const matches = index2.get(compositeKey);
|
|
1475
|
+
const doc2 = matches.shift(); // Consume first match
|
|
1476
|
+
if (matches.length === 0) {
|
|
1477
|
+
index2.delete(compositeKey);
|
|
1478
|
+
}
|
|
1479
|
+
if (doc2) {
|
|
1480
|
+
const doc2Index = docs2.indexOf(doc2);
|
|
1481
|
+
if (doc2Index >= 0) {
|
|
1482
|
+
matched2.add(doc2Index);
|
|
1483
|
+
}
|
|
1484
|
+
if (fieldPrefix2) {
|
|
1485
|
+
merged[fieldPrefix2] = doc2;
|
|
1486
|
+
}
|
|
1487
|
+
else {
|
|
1488
|
+
Object.assign(merged, doc2);
|
|
1489
|
+
}
|
|
1490
|
+
}
|
|
1491
|
+
}
|
|
1492
|
+
else if (onUnmatched1 === 'include') {
|
|
1493
|
+
if (fieldPrefix2) {
|
|
1494
|
+
merged[fieldPrefix2] = null;
|
|
1495
|
+
}
|
|
1496
|
+
result.unmatched1++;
|
|
1497
|
+
}
|
|
1498
|
+
mergedDocs.push(merged);
|
|
1499
|
+
result.merged++;
|
|
1500
|
+
}
|
|
1501
|
+
// Add unmatched documents from collection 2
|
|
1502
|
+
if (onUnmatched2 === 'include') {
|
|
1503
|
+
for (let i = 0; i < docs2.length; i++) {
|
|
1504
|
+
if (!matched2.has(i)) {
|
|
1505
|
+
const merged = {};
|
|
1506
|
+
if (includeIndex) {
|
|
1507
|
+
merged.recordIndex = null;
|
|
1508
|
+
}
|
|
1509
|
+
if (fieldPrefix1) {
|
|
1510
|
+
merged[fieldPrefix1] = null;
|
|
1511
|
+
}
|
|
1512
|
+
if (fieldPrefix2) {
|
|
1513
|
+
merged[fieldPrefix2] = docs2[i];
|
|
1514
|
+
}
|
|
1515
|
+
else {
|
|
1516
|
+
Object.assign(merged, docs2[i]);
|
|
1517
|
+
}
|
|
1518
|
+
mergedDocs.push(merged);
|
|
1519
|
+
result.merged++;
|
|
1520
|
+
result.unmatched2++;
|
|
1521
|
+
}
|
|
1522
|
+
}
|
|
1523
|
+
}
|
|
1524
|
+
}
|
|
1525
|
+
else {
|
|
1526
|
+
throw new Error(`Unknown merge strategy: ${strategy}`);
|
|
1527
|
+
}
|
|
1528
|
+
// Write merged documents to target collection
|
|
1529
|
+
if (mergedDocs.length > 0) {
|
|
1530
|
+
try {
|
|
1531
|
+
const insertOptions = { ordered: false };
|
|
1532
|
+
if (session) {
|
|
1533
|
+
insertOptions.session = session;
|
|
1534
|
+
}
|
|
1535
|
+
await targetColl.insertMany(mergedDocs, insertOptions);
|
|
1536
|
+
}
|
|
1537
|
+
catch (error) {
|
|
1538
|
+
if (error && typeof error === 'object' && 'writeErrors' in error) {
|
|
1539
|
+
const writeErrors = error.writeErrors || [];
|
|
1540
|
+
for (const writeError of writeErrors) {
|
|
1541
|
+
result.errors.push({
|
|
1542
|
+
index: writeError.index,
|
|
1543
|
+
error: new Error(writeError.errmsg || String(writeError.err)),
|
|
1544
|
+
doc: mergedDocs[writeError.index],
|
|
1545
|
+
});
|
|
1546
|
+
}
|
|
1547
|
+
}
|
|
1548
|
+
else {
|
|
1549
|
+
result.errors.push({
|
|
1550
|
+
index: 0,
|
|
1551
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
1552
|
+
});
|
|
1553
|
+
}
|
|
1554
|
+
}
|
|
1555
|
+
}
|
|
1556
|
+
return result;
|
|
1557
|
+
}
|
|
1558
|
+
catch (error) {
|
|
1559
|
+
throw new Error(`Failed to merge collections: ${error instanceof Error ? error.message : String(error)}`);
|
|
1560
|
+
}
|
|
1561
|
+
}
|
|
1276
1562
|
/**
|
|
1277
1563
|
* Closes the MongoDB connection and cleans up resources.
|
|
1278
1564
|
* @throws Error if disconnect fails
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simpleMongoHelper.js","sourceRoot":"","sources":["../src/simpleMongoHelper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"simpleMongoHelper.js","sourceRoot":"","sources":["../src/simpleMongoHelper.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nx-mongo",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.4.0",
|
|
4
4
|
"description": "A lightweight, feature-rich MongoDB helper library for Node.js and TypeScript with pagination, transactions, aggregation, and more",
|
|
5
5
|
"main": "dist/simpleMongoHelper.js",
|
|
6
6
|
"types": "dist/simpleMongoHelper.d.ts",
|
package/src/simpleMongoHelper.ts
CHANGED
|
@@ -112,6 +112,28 @@ export interface WriteStageResult extends WriteByRefResult {
|
|
|
112
112
|
completed?: boolean;
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
+
export interface MergeCollectionsOptions {
|
|
116
|
+
sourceCollection1: string;
|
|
117
|
+
sourceCollection2: string;
|
|
118
|
+
targetCollection: string;
|
|
119
|
+
strategy: 'index' | 'key' | 'composite';
|
|
120
|
+
key?: string; // For 'key' strategy - field name to match on
|
|
121
|
+
compositeKeys?: string[]; // For 'composite' strategy - array of field names
|
|
122
|
+
fieldPrefix1?: string; // Prefix for fields from collection 1 (default: 'record')
|
|
123
|
+
fieldPrefix2?: string; // Prefix for fields from collection 2 (default: 'assessment')
|
|
124
|
+
includeIndex?: boolean; // Include original index in merged document (default: true for index strategy)
|
|
125
|
+
onUnmatched1?: 'include' | 'skip'; // What to do with unmatched records from collection 1 (default: 'include')
|
|
126
|
+
onUnmatched2?: 'include' | 'skip'; // What to do with unmatched records from collection 2 (default: 'include')
|
|
127
|
+
session?: ClientSession;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export interface MergeCollectionsResult {
|
|
131
|
+
merged: number;
|
|
132
|
+
unmatched1: number;
|
|
133
|
+
unmatched2: number;
|
|
134
|
+
errors: Array<{ index: number; error: Error; doc?: any }>;
|
|
135
|
+
}
|
|
136
|
+
|
|
115
137
|
/**
|
|
116
138
|
* Extracts values from an object using dot-notation paths with array wildcard support.
|
|
117
139
|
* Supports nested object paths (dot notation) and array wildcards ([]) to collect values from all array elements.
|
|
@@ -1599,6 +1621,316 @@ export class SimpleMongoHelper {
|
|
|
1599
1621
|
return result;
|
|
1600
1622
|
}
|
|
1601
1623
|
|
|
1624
|
+
/**
|
|
1625
|
+
* Merges two collections into a new target collection using various strategies.
|
|
1626
|
+
* Supports index-based, key-based, and composite-key merging.
|
|
1627
|
+
* @param options - Merge configuration options
|
|
1628
|
+
* @returns Result object with merge statistics
|
|
1629
|
+
* @throws Error if not initialized or if merge fails
|
|
1630
|
+
*/
|
|
1631
|
+
async mergeCollections(options: MergeCollectionsOptions): Promise<MergeCollectionsResult> {
|
|
1632
|
+
this.ensureInitialized();
|
|
1633
|
+
|
|
1634
|
+
const {
|
|
1635
|
+
sourceCollection1,
|
|
1636
|
+
sourceCollection2,
|
|
1637
|
+
targetCollection,
|
|
1638
|
+
strategy,
|
|
1639
|
+
key,
|
|
1640
|
+
compositeKeys,
|
|
1641
|
+
fieldPrefix1 = 'record',
|
|
1642
|
+
fieldPrefix2 = 'assessment',
|
|
1643
|
+
includeIndex = strategy === 'index',
|
|
1644
|
+
onUnmatched1 = 'include',
|
|
1645
|
+
onUnmatched2 = 'include',
|
|
1646
|
+
session,
|
|
1647
|
+
} = options;
|
|
1648
|
+
|
|
1649
|
+
const result: MergeCollectionsResult = {
|
|
1650
|
+
merged: 0,
|
|
1651
|
+
unmatched1: 0,
|
|
1652
|
+
unmatched2: 0,
|
|
1653
|
+
errors: [],
|
|
1654
|
+
};
|
|
1655
|
+
|
|
1656
|
+
try {
|
|
1657
|
+
const coll1 = this.db!.collection(sourceCollection1);
|
|
1658
|
+
const coll2 = this.db!.collection(sourceCollection2);
|
|
1659
|
+
const targetColl = this.db!.collection(targetCollection);
|
|
1660
|
+
|
|
1661
|
+
const findOptions: any = {};
|
|
1662
|
+
if (session) {
|
|
1663
|
+
findOptions.session = session;
|
|
1664
|
+
}
|
|
1665
|
+
|
|
1666
|
+
// Load all documents from both collections
|
|
1667
|
+
const docs1 = await coll1.find({}, findOptions).toArray();
|
|
1668
|
+
const docs2 = await coll2.find({}, findOptions).toArray();
|
|
1669
|
+
|
|
1670
|
+
const mergedDocs: any[] = [];
|
|
1671
|
+
|
|
1672
|
+
if (strategy === 'index') {
|
|
1673
|
+
// Index-based merging - assumes same order
|
|
1674
|
+
const maxLength = Math.max(docs1.length, docs2.length);
|
|
1675
|
+
for (let i = 0; i < maxLength; i++) {
|
|
1676
|
+
const doc1 = docs1[i];
|
|
1677
|
+
const doc2 = docs2[i];
|
|
1678
|
+
|
|
1679
|
+
const merged: any = {};
|
|
1680
|
+
if (includeIndex) {
|
|
1681
|
+
merged.recordIndex = i;
|
|
1682
|
+
}
|
|
1683
|
+
|
|
1684
|
+
if (doc1) {
|
|
1685
|
+
if (fieldPrefix1) {
|
|
1686
|
+
merged[fieldPrefix1] = doc1;
|
|
1687
|
+
} else {
|
|
1688
|
+
Object.assign(merged, doc1);
|
|
1689
|
+
}
|
|
1690
|
+
} else if (onUnmatched1 === 'include') {
|
|
1691
|
+
if (fieldPrefix1) {
|
|
1692
|
+
merged[fieldPrefix1] = null;
|
|
1693
|
+
}
|
|
1694
|
+
result.unmatched1++;
|
|
1695
|
+
}
|
|
1696
|
+
|
|
1697
|
+
if (doc2) {
|
|
1698
|
+
if (fieldPrefix2) {
|
|
1699
|
+
merged[fieldPrefix2] = doc2;
|
|
1700
|
+
} else {
|
|
1701
|
+
Object.assign(merged, doc2);
|
|
1702
|
+
}
|
|
1703
|
+
} else if (onUnmatched2 === 'include') {
|
|
1704
|
+
if (fieldPrefix2) {
|
|
1705
|
+
merged[fieldPrefix2] = null;
|
|
1706
|
+
}
|
|
1707
|
+
result.unmatched2++;
|
|
1708
|
+
}
|
|
1709
|
+
|
|
1710
|
+
if (doc1 || doc2) {
|
|
1711
|
+
mergedDocs.push(merged);
|
|
1712
|
+
result.merged++;
|
|
1713
|
+
}
|
|
1714
|
+
}
|
|
1715
|
+
} else if (strategy === 'key') {
|
|
1716
|
+
if (!key) {
|
|
1717
|
+
throw new Error('Key strategy requires a "key" option specifying the field name to match on');
|
|
1718
|
+
}
|
|
1719
|
+
|
|
1720
|
+
// Build index for collection 2 by key
|
|
1721
|
+
const index2 = new Map<string, any[]>();
|
|
1722
|
+
for (const doc of docs2) {
|
|
1723
|
+
const keyValue = getByDotPath(doc, key)[0];
|
|
1724
|
+
if (keyValue !== undefined && keyValue !== null) {
|
|
1725
|
+
const keyStr = String(keyValue);
|
|
1726
|
+
if (!index2.has(keyStr)) {
|
|
1727
|
+
index2.set(keyStr, []);
|
|
1728
|
+
}
|
|
1729
|
+
index2.get(keyStr)!.push(doc);
|
|
1730
|
+
}
|
|
1731
|
+
}
|
|
1732
|
+
|
|
1733
|
+
// Match documents from collection 1 with collection 2
|
|
1734
|
+
const matched2 = new Set<number>();
|
|
1735
|
+
for (let i = 0; i < docs1.length; i++) {
|
|
1736
|
+
const doc1 = docs1[i];
|
|
1737
|
+
const keyValue = getByDotPath(doc1, key)[0];
|
|
1738
|
+
const keyStr = keyValue !== undefined && keyValue !== null ? String(keyValue) : null;
|
|
1739
|
+
|
|
1740
|
+
const merged: any = {};
|
|
1741
|
+
if (includeIndex) {
|
|
1742
|
+
merged.recordIndex = i;
|
|
1743
|
+
}
|
|
1744
|
+
|
|
1745
|
+
if (fieldPrefix1) {
|
|
1746
|
+
merged[fieldPrefix1] = doc1;
|
|
1747
|
+
} else {
|
|
1748
|
+
Object.assign(merged, doc1);
|
|
1749
|
+
}
|
|
1750
|
+
|
|
1751
|
+
if (keyStr && index2.has(keyStr)) {
|
|
1752
|
+
const matches = index2.get(keyStr)!;
|
|
1753
|
+
const doc2 = matches.shift(); // Consume first match
|
|
1754
|
+
if (matches.length === 0) {
|
|
1755
|
+
index2.delete(keyStr);
|
|
1756
|
+
}
|
|
1757
|
+
if (doc2) {
|
|
1758
|
+
const doc2Index = docs2.indexOf(doc2);
|
|
1759
|
+
if (doc2Index >= 0) {
|
|
1760
|
+
matched2.add(doc2Index);
|
|
1761
|
+
}
|
|
1762
|
+
if (fieldPrefix2) {
|
|
1763
|
+
merged[fieldPrefix2] = doc2;
|
|
1764
|
+
} else {
|
|
1765
|
+
Object.assign(merged, doc2);
|
|
1766
|
+
}
|
|
1767
|
+
}
|
|
1768
|
+
} else if (onUnmatched1 === 'include') {
|
|
1769
|
+
if (fieldPrefix2) {
|
|
1770
|
+
merged[fieldPrefix2] = null;
|
|
1771
|
+
}
|
|
1772
|
+
result.unmatched1++;
|
|
1773
|
+
}
|
|
1774
|
+
|
|
1775
|
+
mergedDocs.push(merged);
|
|
1776
|
+
result.merged++;
|
|
1777
|
+
}
|
|
1778
|
+
|
|
1779
|
+
// Add unmatched documents from collection 2
|
|
1780
|
+
if (onUnmatched2 === 'include') {
|
|
1781
|
+
for (let i = 0; i < docs2.length; i++) {
|
|
1782
|
+
if (!matched2.has(i)) {
|
|
1783
|
+
const merged: any = {};
|
|
1784
|
+
if (includeIndex) {
|
|
1785
|
+
merged.recordIndex = null;
|
|
1786
|
+
}
|
|
1787
|
+
if (fieldPrefix1) {
|
|
1788
|
+
merged[fieldPrefix1] = null;
|
|
1789
|
+
}
|
|
1790
|
+
if (fieldPrefix2) {
|
|
1791
|
+
merged[fieldPrefix2] = docs2[i];
|
|
1792
|
+
} else {
|
|
1793
|
+
Object.assign(merged, docs2[i]);
|
|
1794
|
+
}
|
|
1795
|
+
mergedDocs.push(merged);
|
|
1796
|
+
result.merged++;
|
|
1797
|
+
result.unmatched2++;
|
|
1798
|
+
}
|
|
1799
|
+
}
|
|
1800
|
+
}
|
|
1801
|
+
} else if (strategy === 'composite') {
|
|
1802
|
+
if (!compositeKeys || compositeKeys.length === 0) {
|
|
1803
|
+
throw new Error('Composite strategy requires "compositeKeys" option specifying array of field names');
|
|
1804
|
+
}
|
|
1805
|
+
|
|
1806
|
+
// Helper function to build composite key
|
|
1807
|
+
const buildCompositeKey = (doc: any): string => {
|
|
1808
|
+
const keyParts: any[] = [];
|
|
1809
|
+
for (const keyField of compositeKeys!) {
|
|
1810
|
+
const values = getByDotPath(doc, keyField);
|
|
1811
|
+
// Sort array values for consistent matching
|
|
1812
|
+
const sortedValues = Array.isArray(values[0])
|
|
1813
|
+
? values.map(v => Array.isArray(v) ? v.sort() : v)
|
|
1814
|
+
: values;
|
|
1815
|
+
keyParts.push(JSON.stringify(sortedValues));
|
|
1816
|
+
}
|
|
1817
|
+
return keyParts.join('|');
|
|
1818
|
+
};
|
|
1819
|
+
|
|
1820
|
+
// Build index for collection 2 by composite key
|
|
1821
|
+
const index2 = new Map<string, any[]>();
|
|
1822
|
+
for (const doc of docs2) {
|
|
1823
|
+
const compositeKey = buildCompositeKey(doc);
|
|
1824
|
+
if (!index2.has(compositeKey)) {
|
|
1825
|
+
index2.set(compositeKey, []);
|
|
1826
|
+
}
|
|
1827
|
+
index2.get(compositeKey)!.push(doc);
|
|
1828
|
+
}
|
|
1829
|
+
|
|
1830
|
+
// Match documents from collection 1 with collection 2
|
|
1831
|
+
const matched2 = new Set<number>();
|
|
1832
|
+
for (let i = 0; i < docs1.length; i++) {
|
|
1833
|
+
const doc1 = docs1[i];
|
|
1834
|
+
const compositeKey = buildCompositeKey(doc1);
|
|
1835
|
+
|
|
1836
|
+
const merged: any = {};
|
|
1837
|
+
if (includeIndex) {
|
|
1838
|
+
merged.recordIndex = i;
|
|
1839
|
+
}
|
|
1840
|
+
|
|
1841
|
+
if (fieldPrefix1) {
|
|
1842
|
+
merged[fieldPrefix1] = doc1;
|
|
1843
|
+
} else {
|
|
1844
|
+
Object.assign(merged, doc1);
|
|
1845
|
+
}
|
|
1846
|
+
|
|
1847
|
+
if (index2.has(compositeKey)) {
|
|
1848
|
+
const matches = index2.get(compositeKey)!;
|
|
1849
|
+
const doc2 = matches.shift(); // Consume first match
|
|
1850
|
+
if (matches.length === 0) {
|
|
1851
|
+
index2.delete(compositeKey);
|
|
1852
|
+
}
|
|
1853
|
+
if (doc2) {
|
|
1854
|
+
const doc2Index = docs2.indexOf(doc2);
|
|
1855
|
+
if (doc2Index >= 0) {
|
|
1856
|
+
matched2.add(doc2Index);
|
|
1857
|
+
}
|
|
1858
|
+
if (fieldPrefix2) {
|
|
1859
|
+
merged[fieldPrefix2] = doc2;
|
|
1860
|
+
} else {
|
|
1861
|
+
Object.assign(merged, doc2);
|
|
1862
|
+
}
|
|
1863
|
+
}
|
|
1864
|
+
} else if (onUnmatched1 === 'include') {
|
|
1865
|
+
if (fieldPrefix2) {
|
|
1866
|
+
merged[fieldPrefix2] = null;
|
|
1867
|
+
}
|
|
1868
|
+
result.unmatched1++;
|
|
1869
|
+
}
|
|
1870
|
+
|
|
1871
|
+
mergedDocs.push(merged);
|
|
1872
|
+
result.merged++;
|
|
1873
|
+
}
|
|
1874
|
+
|
|
1875
|
+
// Add unmatched documents from collection 2
|
|
1876
|
+
if (onUnmatched2 === 'include') {
|
|
1877
|
+
for (let i = 0; i < docs2.length; i++) {
|
|
1878
|
+
if (!matched2.has(i)) {
|
|
1879
|
+
const merged: any = {};
|
|
1880
|
+
if (includeIndex) {
|
|
1881
|
+
merged.recordIndex = null;
|
|
1882
|
+
}
|
|
1883
|
+
if (fieldPrefix1) {
|
|
1884
|
+
merged[fieldPrefix1] = null;
|
|
1885
|
+
}
|
|
1886
|
+
if (fieldPrefix2) {
|
|
1887
|
+
merged[fieldPrefix2] = docs2[i];
|
|
1888
|
+
} else {
|
|
1889
|
+
Object.assign(merged, docs2[i]);
|
|
1890
|
+
}
|
|
1891
|
+
mergedDocs.push(merged);
|
|
1892
|
+
result.merged++;
|
|
1893
|
+
result.unmatched2++;
|
|
1894
|
+
}
|
|
1895
|
+
}
|
|
1896
|
+
}
|
|
1897
|
+
} else {
|
|
1898
|
+
throw new Error(`Unknown merge strategy: ${strategy}`);
|
|
1899
|
+
}
|
|
1900
|
+
|
|
1901
|
+
// Write merged documents to target collection
|
|
1902
|
+
if (mergedDocs.length > 0) {
|
|
1903
|
+
try {
|
|
1904
|
+
const insertOptions: any = { ordered: false };
|
|
1905
|
+
if (session) {
|
|
1906
|
+
insertOptions.session = session;
|
|
1907
|
+
}
|
|
1908
|
+
await targetColl.insertMany(mergedDocs, insertOptions);
|
|
1909
|
+
} catch (error) {
|
|
1910
|
+
if (error && typeof error === 'object' && 'writeErrors' in error) {
|
|
1911
|
+
const writeErrors = (error as any).writeErrors || [];
|
|
1912
|
+
for (const writeError of writeErrors) {
|
|
1913
|
+
result.errors.push({
|
|
1914
|
+
index: writeError.index,
|
|
1915
|
+
error: new Error(writeError.errmsg || String(writeError.err)),
|
|
1916
|
+
doc: mergedDocs[writeError.index],
|
|
1917
|
+
});
|
|
1918
|
+
}
|
|
1919
|
+
} else {
|
|
1920
|
+
result.errors.push({
|
|
1921
|
+
index: 0,
|
|
1922
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
1923
|
+
});
|
|
1924
|
+
}
|
|
1925
|
+
}
|
|
1926
|
+
}
|
|
1927
|
+
|
|
1928
|
+
return result;
|
|
1929
|
+
} catch (error) {
|
|
1930
|
+
throw new Error(`Failed to merge collections: ${error instanceof Error ? error.message : String(error)}`);
|
|
1931
|
+
}
|
|
1932
|
+
}
|
|
1933
|
+
|
|
1602
1934
|
/**
|
|
1603
1935
|
* Closes the MongoDB connection and cleans up resources.
|
|
1604
1936
|
* @throws Error if disconnect fails
|