mingo
Version:
MongoDB query language for in-memory objects
21 lines (20 loc) • 583 B
JavaScript
import { Aggregator } from "../../aggregator";
import { ComputeOptions, ProcessingMode } from "../../core/_internal";
const $facet = (collection, expr, options) => {
if (!(options.processingMode & ProcessingMode.CLONE_INPUT)) {
options = {
...ComputeOptions.init(options).options,
processingMode: ProcessingMode.CLONE_INPUT
};
}
return collection.transform(((array) => {
const o = {};
for (const [k, pipeline] of Object.entries(expr)) {
o[k] = new Aggregator(pipeline, options).run(array);
}
return [o];
}));
};
export {
$facet
};