mrr.sj.front/node_modules/mingo/dist/esm/operators/update/unset.js

19 lines
509 B
JavaScript

import { has, isArray } from "../../util";
import { applyUpdate, UPDATE_OPTIONS, walkExpression } from "./_internal";
const $unset = (obj, expr, arrayFilters = [], options = UPDATE_OPTIONS) => {
return walkExpression(expr, arrayFilters, options, (_, node, queries) => {
return applyUpdate(obj, node, queries, (o, k) => {
if (!has(o, k)) return false;
if (isArray(o)) {
o[k] = null;
} else {
delete o[k];
}
return true;
});
});
};
export {
$unset
};