| 740 | }; |
| 741 | |
| 742 | const transformDontSelect = (dontSelectObject, key, objects) => { |
| 743 | var values = []; |
| 744 | for (var result of objects) { |
| 745 | values.push(key.split('.').reduce(getDeepestObjectFromKey, result)); |
| 746 | } |
| 747 | delete dontSelectObject['$dontSelect']; |
| 748 | if (Array.isArray(dontSelectObject['$nin'])) { |
| 749 | dontSelectObject['$nin'] = dontSelectObject['$nin'].concat(values); |
| 750 | } else { |
| 751 | dontSelectObject['$nin'] = values; |
| 752 | } |
| 753 | }; |
| 754 | |
| 755 | // Replaces a $dontSelect clause by running the subquery, if there is a |
| 756 | // $dontSelect clause. |