nx-mongo 3.4.0 → 3.5.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # nx-mongo
2
2
 
3
- **Version:** 3.4.0
3
+ **Version:** 3.5.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
 
@@ -300,11 +300,12 @@ Merges two collections into a new target collection using various strategies (in
300
300
  - `strategy` - Merge strategy: `'index' | 'key' | 'composite'`
301
301
  - `key` - (For 'key' strategy) Field name to match on (supports dot notation)
302
302
  - `compositeKeys` - (For 'composite' strategy) Array of field names for composite key matching
303
+ - `joinType` - (For 'key' and 'composite' strategies) SQL-style join type: `'inner' | 'left' | 'right' | 'outer'` (optional, overrides onUnmatched flags)
303
304
  - `fieldPrefix1` - Prefix for fields from collection 1 (default: 'record')
304
305
  - `fieldPrefix2` - Prefix for fields from collection 2 (default: 'assessment')
305
306
  - `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')
307
+ - `onUnmatched1` - (Deprecated: use `joinType` instead) What to do with unmatched records from collection 1: 'include' | 'skip' (default: 'include')
308
+ - `onUnmatched2` - (Deprecated: use `joinType` instead) What to do with unmatched records from collection 2: 'include' | 'skip' (default: 'include')
308
309
  - `session` - Optional transaction session
309
310
 
310
311
  **Returns:**
@@ -333,20 +334,50 @@ interface MergeCollectionsResult {
333
334
  // Result: { recordIndex: 0, record: {...}, assessment: {...} }
334
335
  ```
335
336
 
336
- 2. **Key-based** (`strategy: 'key'`): Merges by matching a single unique field.
337
+ 2. **Key-based** (`strategy: 'key'`): Merges by matching a single unique field. Supports SQL-style join types.
337
338
  ```typescript
339
+ // INNER JOIN - Only matched records
338
340
  const result = await helper.mergeCollections({
339
341
  sourceCollection1: 'applications',
340
342
  sourceCollection2: 'assessments',
341
343
  targetCollection: 'merged',
342
344
  strategy: 'key',
343
- key: 'id', // or 'meta.id' for nested fields
344
- fieldPrefix1: 'app',
345
- fieldPrefix2: 'assessment'
345
+ key: 'id',
346
+ joinType: 'inner' // Only records with matching assessments
347
+ });
348
+
349
+ // LEFT JOIN - All records, with assessments where available
350
+ const result = await helper.mergeCollections({
351
+ sourceCollection1: 'applications',
352
+ sourceCollection2: 'assessments',
353
+ targetCollection: 'merged',
354
+ strategy: 'key',
355
+ key: 'id',
356
+ joinType: 'left' // All apps, null assessment if no match
357
+ });
358
+
359
+ // RIGHT JOIN - All assessments, with records where available
360
+ const result = await helper.mergeCollections({
361
+ sourceCollection1: 'applications',
362
+ sourceCollection2: 'assessments',
363
+ targetCollection: 'merged',
364
+ strategy: 'key',
365
+ key: 'id',
366
+ joinType: 'right' // All assessments, null record if no match
367
+ });
368
+
369
+ // FULL OUTER JOIN - Everything from both sides
370
+ const result = await helper.mergeCollections({
371
+ sourceCollection1: 'applications',
372
+ sourceCollection2: 'assessments',
373
+ targetCollection: 'merged',
374
+ strategy: 'key',
375
+ key: 'id',
376
+ joinType: 'outer' // All apps and all assessments
346
377
  });
347
378
  ```
348
379
 
349
- 3. **Composite-key** (`strategy: 'composite'`): Merges by matching multiple fields (e.g., name + ports + zones).
380
+ 3. **Composite-key** (`strategy: 'composite'`): Merges by matching multiple fields (e.g., name + ports + zones). Also supports join types.
350
381
  ```typescript
351
382
  const result = await helper.mergeCollections({
352
383
  sourceCollection1: 'original_records',
@@ -354,11 +385,21 @@ interface MergeCollectionsResult {
354
385
  targetCollection: 'merged',
355
386
  strategy: 'composite',
356
387
  compositeKeys: ['name', 'ports[]', 'zones[]'], // Arrays are sorted for matching
388
+ joinType: 'left', // All records, assessments where match
357
389
  fieldPrefix1: 'record',
358
390
  fieldPrefix2: 'assessment'
359
391
  });
360
392
  ```
361
393
 
394
+ **SQL-Style Join Types:**
395
+
396
+ - **`'inner'`** - INNER JOIN: Returns only records that have matches in both collections
397
+ - **`'left'`** - LEFT JOIN: Returns all records from collection 1, with matching records from collection 2 (null if no match)
398
+ - **`'right'`** - RIGHT JOIN: Returns all records from collection 2, with matching records from collection 1 (null if no match)
399
+ - **`'outer'`** - FULL OUTER JOIN: Returns all records from both collections, matching where possible
400
+
401
+ **Multiple Matches:** When a key appears multiple times in collection 2, the merge creates multiple rows (one per match), just like SQL joins. For example, if "app1" has 2 assessments, you'll get 2 merged rows.
402
+
362
403
  **Examples:**
363
404
 
364
405
  ```typescript
@@ -371,37 +412,75 @@ const result1 = await helper.mergeCollections({
371
412
  });
372
413
  console.log(`Merged ${result1.merged} documents, ${result1.unmatched1} unmatched from collection 1`);
373
414
 
374
- // Key-based merge (safer, uses unique identifier)
415
+ // INNER JOIN - Only complete records (both sides matched)
375
416
  const result2 = await helper.mergeCollections({
376
417
  sourceCollection1: 'apps',
377
418
  sourceCollection2: 'assessments',
378
419
  targetCollection: 'merged',
379
420
  strategy: 'key',
380
421
  key: 'appId',
381
- onUnmatched1: 'include', // Include apps without assessments
382
- onUnmatched2: 'skip' // Skip assessments without matching apps
422
+ joinType: 'inner' // Only apps that have assessments
383
423
  });
384
424
 
385
- // Composite-key merge (for records without unique IDs)
425
+ // LEFT JOIN - All apps, assessments where available
386
426
  const result3 = await helper.mergeCollections({
427
+ sourceCollection1: 'apps',
428
+ sourceCollection2: 'assessments',
429
+ targetCollection: 'merged',
430
+ strategy: 'key',
431
+ key: 'appId',
432
+ joinType: 'left' // All apps, null assessment if no match
433
+ });
434
+
435
+ // RIGHT JOIN - All assessments, apps where available
436
+ const result4 = await helper.mergeCollections({
437
+ sourceCollection1: 'apps',
438
+ sourceCollection2: 'assessments',
439
+ targetCollection: 'merged',
440
+ strategy: 'key',
441
+ key: 'appId',
442
+ joinType: 'right' // All assessments, null app if no match
443
+ });
444
+
445
+ // FULL OUTER JOIN - Everything from both sides
446
+ const result5 = await helper.mergeCollections({
447
+ sourceCollection1: 'apps',
448
+ sourceCollection2: 'assessments',
449
+ targetCollection: 'merged',
450
+ strategy: 'key',
451
+ key: 'appId',
452
+ joinType: 'outer' // All apps and all assessments
453
+ });
454
+
455
+ // Composite-key merge with LEFT JOIN
456
+ const result6 = await helper.mergeCollections({
387
457
  sourceCollection1: 'original',
388
458
  sourceCollection2: 'assessments',
389
459
  targetCollection: 'merged',
390
460
  strategy: 'composite',
391
461
  compositeKeys: ['name', 'ports[]', 'zones[]'],
462
+ joinType: 'left',
392
463
  fieldPrefix1: 'record',
393
464
  fieldPrefix2: 'assessment',
394
465
  includeIndex: true
395
466
  });
467
+
468
+ // Handling multiple matches (one app, multiple assessments)
469
+ // If "app1" has 2 assessments, you'll get 2 merged rows:
470
+ // - { record: {id: 1, name: "app1"}, assessment: {appId: 1, risk: "high"} }
471
+ // - { record: {id: 1, name: "app1"}, assessment: {appId: 1, risk: "medium"} }
396
472
  ```
397
473
 
398
474
  **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
475
+ - **Index-based merging** is fast but fragile if collections are reordered
476
+ - **Key-based merging** is safer and recommended when you have unique identifiers
477
+ - **Composite-key merging** handles cases where no single unique field exists
478
+ - **SQL-style join types** (`inner`, `left`, `right`, `outer`) provide explicit control over unmatched records
479
+ - **Multiple matches** create multiple rows (SQL-style) - if a key has duplicates, you get one row per match
402
480
  - Array fields in composite keys are automatically sorted for consistent matching
403
481
  - Supports dot notation for nested fields (e.g., `'meta.id'`, `'ports[]'`)
404
482
  - Transaction support available via `session` option
483
+ - Legacy `onUnmatched1`/`onUnmatched2` flags still work but are deprecated in favor of `joinType`
405
484
 
406
485
  ### Count Methods
407
486
 
@@ -1167,11 +1246,12 @@ interface MergeCollectionsOptions {
1167
1246
  strategy: 'index' | 'key' | 'composite';
1168
1247
  key?: string;
1169
1248
  compositeKeys?: string[];
1249
+ joinType?: 'inner' | 'left' | 'right' | 'outer'; // SQL-style join type
1170
1250
  fieldPrefix1?: string;
1171
1251
  fieldPrefix2?: string;
1172
1252
  includeIndex?: boolean;
1173
- onUnmatched1?: 'include' | 'skip';
1174
- onUnmatched2?: 'include' | 'skip';
1253
+ onUnmatched1?: 'include' | 'skip'; // Deprecated: use joinType instead
1254
+ onUnmatched2?: 'include' | 'skip'; // Deprecated: use joinType instead
1175
1255
  session?: ClientSession;
1176
1256
  }
1177
1257
 
@@ -1235,6 +1315,13 @@ Contributions are welcome! Please feel free to submit a Pull Request.
1235
1315
 
1236
1316
  ## Changelog
1237
1317
 
1318
+ ### 3.5.0
1319
+ - Enhanced `mergeCollections()` with SQL-style join types (`inner`, `left`, `right`, `outer`)
1320
+ - **Multiple match handling**: Now creates multiple rows when keys have duplicates (SQL-style behavior)
1321
+ - Improved key-based and composite-key merging to handle one-to-many and many-to-many relationships
1322
+ - Added explicit join type control for better clarity and SQL compatibility
1323
+ - Legacy `onUnmatched1`/`onUnmatched2` flags deprecated in favor of `joinType` parameter
1324
+
1238
1325
  ### 3.4.0
1239
1326
  - Added `mergeCollections()` method for merging two collections into a new target collection
1240
1327
  - Supports three merge strategies: index-based, key-based, and composite-key merging
@@ -119,6 +119,7 @@ export interface MergeCollectionsOptions {
119
119
  strategy: 'index' | 'key' | 'composite';
120
120
  key?: string;
121
121
  compositeKeys?: string[];
122
+ joinType?: 'inner' | 'left' | 'right' | 'outer';
122
123
  fieldPrefix1?: string;
123
124
  fieldPrefix2?: string;
124
125
  includeIndex?: boolean;
@@ -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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"}
@@ -1282,7 +1282,39 @@ class SimpleMongoHelper {
1282
1282
  */
1283
1283
  async mergeCollections(options) {
1284
1284
  this.ensureInitialized();
1285
- const { sourceCollection1, sourceCollection2, targetCollection, strategy, key, compositeKeys, fieldPrefix1 = 'record', fieldPrefix2 = 'assessment', includeIndex = strategy === 'index', onUnmatched1 = 'include', onUnmatched2 = 'include', session, } = options;
1285
+ const { sourceCollection1, sourceCollection2, targetCollection, strategy, key, compositeKeys, joinType, fieldPrefix1 = 'record', fieldPrefix2 = 'assessment', includeIndex = strategy === 'index', onUnmatched1 = 'include', onUnmatched2 = 'include', session, } = options;
1286
+ // Determine join behavior from joinType or fallback to onUnmatched flags
1287
+ let includeUnmatched1;
1288
+ let includeUnmatched2;
1289
+ if (joinType) {
1290
+ // Use explicit join type
1291
+ switch (joinType) {
1292
+ case 'inner':
1293
+ includeUnmatched1 = false;
1294
+ includeUnmatched2 = false;
1295
+ break;
1296
+ case 'left':
1297
+ includeUnmatched1 = true;
1298
+ includeUnmatched2 = false;
1299
+ break;
1300
+ case 'right':
1301
+ includeUnmatched1 = false;
1302
+ includeUnmatched2 = true;
1303
+ break;
1304
+ case 'outer':
1305
+ includeUnmatched1 = true;
1306
+ includeUnmatched2 = true;
1307
+ break;
1308
+ default:
1309
+ includeUnmatched1 = onUnmatched1 === 'include';
1310
+ includeUnmatched2 = onUnmatched2 === 'include';
1311
+ }
1312
+ }
1313
+ else {
1314
+ // Fallback to legacy onUnmatched flags
1315
+ includeUnmatched1 = onUnmatched1 === 'include';
1316
+ includeUnmatched2 = onUnmatched2 === 'include';
1317
+ }
1286
1318
  const result = {
1287
1319
  merged: 0,
1288
1320
  unmatched1: 0,
@@ -1333,7 +1365,7 @@ class SimpleMongoHelper {
1333
1365
  Object.assign(merged, doc2);
1334
1366
  }
1335
1367
  }
1336
- else if (onUnmatched2 === 'include') {
1368
+ else if (includeUnmatched2) {
1337
1369
  if (fieldPrefix2) {
1338
1370
  merged[fieldPrefix2] = null;
1339
1371
  }
@@ -1379,34 +1411,42 @@ class SimpleMongoHelper {
1379
1411
  }
1380
1412
  if (keyStr && index2.has(keyStr)) {
1381
1413
  const matches = index2.get(keyStr);
1382
- const doc2 = matches.shift(); // Consume first match
1383
- if (matches.length === 0) {
1414
+ // Handle multiple matches: create one row per match (SQL-style)
1415
+ if (matches.length > 0) {
1416
+ for (const doc2 of matches) {
1417
+ const doc2Index = docs2.indexOf(doc2);
1418
+ if (doc2Index >= 0) {
1419
+ matched2.add(doc2Index);
1420
+ }
1421
+ // Create a new merged document for each match
1422
+ const mergedRow = { ...merged };
1423
+ if (fieldPrefix2) {
1424
+ mergedRow[fieldPrefix2] = doc2;
1425
+ }
1426
+ else {
1427
+ Object.assign(mergedRow, doc2);
1428
+ }
1429
+ mergedDocs.push(mergedRow);
1430
+ result.merged++;
1431
+ }
1432
+ // Remove all matches from index
1384
1433
  index2.delete(keyStr);
1385
1434
  }
1386
- if (doc2) {
1387
- const doc2Index = docs2.indexOf(doc2);
1388
- if (doc2Index >= 0) {
1389
- matched2.add(doc2Index);
1390
- }
1435
+ }
1436
+ else {
1437
+ // No match found
1438
+ if (includeUnmatched1) {
1391
1439
  if (fieldPrefix2) {
1392
- merged[fieldPrefix2] = doc2;
1393
- }
1394
- else {
1395
- Object.assign(merged, doc2);
1440
+ merged[fieldPrefix2] = null;
1396
1441
  }
1442
+ mergedDocs.push(merged);
1443
+ result.merged++;
1444
+ result.unmatched1++;
1397
1445
  }
1398
1446
  }
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
1447
  }
1408
1448
  // Add unmatched documents from collection 2
1409
- if (onUnmatched2 === 'include') {
1449
+ if (includeUnmatched2) {
1410
1450
  for (let i = 0; i < docs2.length; i++) {
1411
1451
  if (!matched2.has(i)) {
1412
1452
  const merged = {};
@@ -1472,34 +1512,42 @@ class SimpleMongoHelper {
1472
1512
  }
1473
1513
  if (index2.has(compositeKey)) {
1474
1514
  const matches = index2.get(compositeKey);
1475
- const doc2 = matches.shift(); // Consume first match
1476
- if (matches.length === 0) {
1515
+ // Handle multiple matches: create one row per match (SQL-style)
1516
+ if (matches.length > 0) {
1517
+ for (const doc2 of matches) {
1518
+ const doc2Index = docs2.indexOf(doc2);
1519
+ if (doc2Index >= 0) {
1520
+ matched2.add(doc2Index);
1521
+ }
1522
+ // Create a new merged document for each match
1523
+ const mergedRow = { ...merged };
1524
+ if (fieldPrefix2) {
1525
+ mergedRow[fieldPrefix2] = doc2;
1526
+ }
1527
+ else {
1528
+ Object.assign(mergedRow, doc2);
1529
+ }
1530
+ mergedDocs.push(mergedRow);
1531
+ result.merged++;
1532
+ }
1533
+ // Remove all matches from index
1477
1534
  index2.delete(compositeKey);
1478
1535
  }
1479
- if (doc2) {
1480
- const doc2Index = docs2.indexOf(doc2);
1481
- if (doc2Index >= 0) {
1482
- matched2.add(doc2Index);
1483
- }
1536
+ }
1537
+ else {
1538
+ // No match found
1539
+ if (includeUnmatched1) {
1484
1540
  if (fieldPrefix2) {
1485
- merged[fieldPrefix2] = doc2;
1486
- }
1487
- else {
1488
- Object.assign(merged, doc2);
1541
+ merged[fieldPrefix2] = null;
1489
1542
  }
1543
+ mergedDocs.push(merged);
1544
+ result.merged++;
1545
+ result.unmatched1++;
1490
1546
  }
1491
1547
  }
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
1548
  }
1501
1549
  // Add unmatched documents from collection 2
1502
- if (onUnmatched2 === 'include') {
1550
+ if (includeUnmatched2) {
1503
1551
  for (let i = 0; i < docs2.length; i++) {
1504
1552
  if (!matched2.has(i)) {
1505
1553
  const merged = {};
@@ -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.4.0",
3
+ "version": "3.5.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",
@@ -119,11 +119,12 @@ export interface MergeCollectionsOptions {
119
119
  strategy: 'index' | 'key' | 'composite';
120
120
  key?: string; // For 'key' strategy - field name to match on
121
121
  compositeKeys?: string[]; // For 'composite' strategy - array of field names
122
+ joinType?: 'inner' | 'left' | 'right' | 'outer'; // SQL-style join type (for 'key' and 'composite' strategies)
122
123
  fieldPrefix1?: string; // Prefix for fields from collection 1 (default: 'record')
123
124
  fieldPrefix2?: string; // Prefix for fields from collection 2 (default: 'assessment')
124
125
  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')
126
+ onUnmatched1?: 'include' | 'skip'; // What to do with unmatched records from collection 1 (default: 'include', deprecated: use joinType instead)
127
+ onUnmatched2?: 'include' | 'skip'; // What to do with unmatched records from collection 2 (default: 'include', deprecated: use joinType instead)
127
128
  session?: ClientSession;
128
129
  }
129
130
 
@@ -1638,6 +1639,7 @@ export class SimpleMongoHelper {
1638
1639
  strategy,
1639
1640
  key,
1640
1641
  compositeKeys,
1642
+ joinType,
1641
1643
  fieldPrefix1 = 'record',
1642
1644
  fieldPrefix2 = 'assessment',
1643
1645
  includeIndex = strategy === 'index',
@@ -1646,6 +1648,39 @@ export class SimpleMongoHelper {
1646
1648
  session,
1647
1649
  } = options;
1648
1650
 
1651
+ // Determine join behavior from joinType or fallback to onUnmatched flags
1652
+ let includeUnmatched1: boolean;
1653
+ let includeUnmatched2: boolean;
1654
+
1655
+ if (joinType) {
1656
+ // Use explicit join type
1657
+ switch (joinType) {
1658
+ case 'inner':
1659
+ includeUnmatched1 = false;
1660
+ includeUnmatched2 = false;
1661
+ break;
1662
+ case 'left':
1663
+ includeUnmatched1 = true;
1664
+ includeUnmatched2 = false;
1665
+ break;
1666
+ case 'right':
1667
+ includeUnmatched1 = false;
1668
+ includeUnmatched2 = true;
1669
+ break;
1670
+ case 'outer':
1671
+ includeUnmatched1 = true;
1672
+ includeUnmatched2 = true;
1673
+ break;
1674
+ default:
1675
+ includeUnmatched1 = onUnmatched1 === 'include';
1676
+ includeUnmatched2 = onUnmatched2 === 'include';
1677
+ }
1678
+ } else {
1679
+ // Fallback to legacy onUnmatched flags
1680
+ includeUnmatched1 = onUnmatched1 === 'include';
1681
+ includeUnmatched2 = onUnmatched2 === 'include';
1682
+ }
1683
+
1649
1684
  const result: MergeCollectionsResult = {
1650
1685
  merged: 0,
1651
1686
  unmatched1: 0,
@@ -1700,7 +1735,7 @@ export class SimpleMongoHelper {
1700
1735
  } else {
1701
1736
  Object.assign(merged, doc2);
1702
1737
  }
1703
- } else if (onUnmatched2 === 'include') {
1738
+ } else if (includeUnmatched2) {
1704
1739
  if (fieldPrefix2) {
1705
1740
  merged[fieldPrefix2] = null;
1706
1741
  }
@@ -1750,34 +1785,42 @@ export class SimpleMongoHelper {
1750
1785
 
1751
1786
  if (keyStr && index2.has(keyStr)) {
1752
1787
  const matches = index2.get(keyStr)!;
1753
- const doc2 = matches.shift(); // Consume first match
1754
- if (matches.length === 0) {
1788
+ // Handle multiple matches: create one row per match (SQL-style)
1789
+ if (matches.length > 0) {
1790
+ for (const doc2 of matches) {
1791
+ const doc2Index = docs2.indexOf(doc2);
1792
+ if (doc2Index >= 0) {
1793
+ matched2.add(doc2Index);
1794
+ }
1795
+
1796
+ // Create a new merged document for each match
1797
+ const mergedRow: any = { ...merged };
1798
+ if (fieldPrefix2) {
1799
+ mergedRow[fieldPrefix2] = doc2;
1800
+ } else {
1801
+ Object.assign(mergedRow, doc2);
1802
+ }
1803
+ mergedDocs.push(mergedRow);
1804
+ result.merged++;
1805
+ }
1806
+ // Remove all matches from index
1755
1807
  index2.delete(keyStr);
1756
1808
  }
1757
- if (doc2) {
1758
- const doc2Index = docs2.indexOf(doc2);
1759
- if (doc2Index >= 0) {
1760
- matched2.add(doc2Index);
1761
- }
1809
+ } else {
1810
+ // No match found
1811
+ if (includeUnmatched1) {
1762
1812
  if (fieldPrefix2) {
1763
- merged[fieldPrefix2] = doc2;
1764
- } else {
1765
- Object.assign(merged, doc2);
1813
+ merged[fieldPrefix2] = null;
1766
1814
  }
1815
+ mergedDocs.push(merged);
1816
+ result.merged++;
1817
+ result.unmatched1++;
1767
1818
  }
1768
- } else if (onUnmatched1 === 'include') {
1769
- if (fieldPrefix2) {
1770
- merged[fieldPrefix2] = null;
1771
- }
1772
- result.unmatched1++;
1773
1819
  }
1774
-
1775
- mergedDocs.push(merged);
1776
- result.merged++;
1777
1820
  }
1778
1821
 
1779
1822
  // Add unmatched documents from collection 2
1780
- if (onUnmatched2 === 'include') {
1823
+ if (includeUnmatched2) {
1781
1824
  for (let i = 0; i < docs2.length; i++) {
1782
1825
  if (!matched2.has(i)) {
1783
1826
  const merged: any = {};
@@ -1846,34 +1889,42 @@ export class SimpleMongoHelper {
1846
1889
 
1847
1890
  if (index2.has(compositeKey)) {
1848
1891
  const matches = index2.get(compositeKey)!;
1849
- const doc2 = matches.shift(); // Consume first match
1850
- if (matches.length === 0) {
1892
+ // Handle multiple matches: create one row per match (SQL-style)
1893
+ if (matches.length > 0) {
1894
+ for (const doc2 of matches) {
1895
+ const doc2Index = docs2.indexOf(doc2);
1896
+ if (doc2Index >= 0) {
1897
+ matched2.add(doc2Index);
1898
+ }
1899
+
1900
+ // Create a new merged document for each match
1901
+ const mergedRow: any = { ...merged };
1902
+ if (fieldPrefix2) {
1903
+ mergedRow[fieldPrefix2] = doc2;
1904
+ } else {
1905
+ Object.assign(mergedRow, doc2);
1906
+ }
1907
+ mergedDocs.push(mergedRow);
1908
+ result.merged++;
1909
+ }
1910
+ // Remove all matches from index
1851
1911
  index2.delete(compositeKey);
1852
1912
  }
1853
- if (doc2) {
1854
- const doc2Index = docs2.indexOf(doc2);
1855
- if (doc2Index >= 0) {
1856
- matched2.add(doc2Index);
1857
- }
1913
+ } else {
1914
+ // No match found
1915
+ if (includeUnmatched1) {
1858
1916
  if (fieldPrefix2) {
1859
- merged[fieldPrefix2] = doc2;
1860
- } else {
1861
- Object.assign(merged, doc2);
1917
+ merged[fieldPrefix2] = null;
1862
1918
  }
1919
+ mergedDocs.push(merged);
1920
+ result.merged++;
1921
+ result.unmatched1++;
1863
1922
  }
1864
- } else if (onUnmatched1 === 'include') {
1865
- if (fieldPrefix2) {
1866
- merged[fieldPrefix2] = null;
1867
- }
1868
- result.unmatched1++;
1869
1923
  }
1870
-
1871
- mergedDocs.push(merged);
1872
- result.merged++;
1873
1924
  }
1874
1925
 
1875
1926
  // Add unmatched documents from collection 2
1876
- if (onUnmatched2 === 'include') {
1927
+ if (includeUnmatched2) {
1877
1928
  for (let i = 0; i < docs2.length; i++) {
1878
1929
  if (!matched2.has(i)) {
1879
1930
  const merged: any = {};