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