mongodb-aggregate-builder
Version:
Builder for generate aggregation query for MongoDB
42 lines (41 loc) • 1.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.concatArrays = exports.lastN = exports.firstN = exports.last = exports.first = void 0;
const arrayOperation = (arrayVaribaleName, operation) => {
return {
[arrayVaribaleName]: {
[operation]: `$${arrayVaribaleName}`
}
};
};
const first = (arrayVaribaleName) => {
return arrayOperation(arrayVaribaleName, '$first');
};
exports.first = first;
const last = (arrayVaribaleName) => {
return arrayOperation(arrayVaribaleName, '$last');
};
exports.last = last;
const arrayOperationN = (arrayVaribaleName, n, operation) => {
return {
[arrayVaribaleName]: {
[operation]: {
$size: `$${arrayVaribaleName}`
}
}
};
};
const firstN = (arrayVaribaleName, n) => {
return arrayOperationN(arrayVaribaleName, n, '$firstN');
};
exports.firstN = firstN;
const lastN = (arrayVaribaleName, n) => {
return arrayOperationN(arrayVaribaleName, n, '$lastN');
};
exports.lastN = lastN;
const concatArrays = (arrays) => {
return {
$concatArrays: arrays
};
};
exports.concatArrays = concatArrays;