UNPKG

mingo

Version:

MongoDB query language for in-memory objects

19 lines (18 loc) 647 B
import { evalExpr } from "../../../core/_internal"; import { assert, HashMap, isArray } from "../../../util"; import { errExpectArray } from "../_internal"; const OP = "$setIsSubset"; const $setIsSubset = (obj, expr, options) => { assert(isArray(expr) && expr.length === 2, `${OP} expects array(2)`); const args = evalExpr(obj, expr, options); if (!args.every(isArray)) return errExpectArray(options.failOnError, `${OP} arguments`); const [first, second] = args; const map = HashMap.init(); for (const v of second) map.set(v, 0); for (const v of first) if (!map.has(v)) return false; return true; }; export { $setIsSubset };