Есть ли библиотека javascript, которая позволит мне выразить объектные предикаты в DSL, подобном языку запросов MongoDB? Для большей ясности в большой программе я хотел бы сказать:
var obj = {
a: 1,
b: 'abcdefg'
}, qry = {
a: { $gt: 0 },
b: /^abc/
};
if(query(qry).matches(obj)) {
// do something appropriate since
}
вместо:
var obj = {
a: 1,
b: 'abcdefg'
};
if(obj.a>0 && qry.b.test(obj.b)) {
// do something appropriate
}
Я использую Node.js, поэтому ничего на NPM было бы здорово. Это будет дополнительный бонус, если библиотека может выбирать объекты из массива, а также просто сопоставлять отдельные объекты.
Я рассмотрел эти два связанных вопроса, но они не были особенно полезны для моей ситуации: