mingo
Version:
MongoDB query language for in-memory objects
22 lines (21 loc) • 586 B
JavaScript
import { evalExpr } from "../../../core/_internal";
import { isArray, isNil } from "../../../util";
import { errExpectArray } from "../_internal";
const $log = (obj, expr, options) => {
const args = evalExpr(obj, expr, options);
if (isArray(args) && args.length == 2) {
let t_num = true;
for (const v of args) {
if (isNil(v)) return null;
t_num &&= typeof v === "number";
}
if (t_num) return Math.log10(args[0]) / Math.log10(args[1]);
}
return errExpectArray(options.failOnError, "$log", {
size: 2,
type: "number"
});
};
export {
$log
};