Есть ли библиотека 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, было бы замечательно. Было бы дополнительным бонусом, если бы библиотека могла выбирать объекты из массива, а также просто сопоставлять отдельные объекты.
Я рассмотрел эти два связанных вопроса, но они не особо помогли в моей ситуации: