monjo
v1.2.1
Published
mongoDB inspired JSON filters for JS
Downloads
40
Maintainers
Readme
monjo
mongoDB inspired JSON filters for JS
Usage
const compileFilter = require('monjo');
const query = {
name: 'Foo Bar',
age: {
$gt: 5,
},
hobbies: {
$elemMatch: {
$not: {
name: {
$eq: 'music',
},
},
},
},
};
const filter = compileFilter(query);
const users = getUsers();
for (let validUser of users.filter(filter)) {
// do stuff
}
Supported Operators
$eq
- See mongoDB's documentation.$ne
- See mongoDB's documentation.$gt
- See mongoDB's documentation.$gte
- See mongoDB's documentation.$lt
- See mongoDB's documentation.$lte
- See mongoDB's documentation.$in
- See mongoDB's documentation.$nin
- See mongoDB's documentation.$not
- See mongoDB's documentation.$and
- See mongoDB's documentation.$or
- See mongoDB's documentation.$exists
- See mongoDB's documentation.$size
- See mongoDB's documentation.$all
- See mongoDB's documentation.$elemMatch
- See mongoDB's documentation.$startsWith
- wraps overString.prototype.startsWith
.$endsWith
- wraps overString.prototype.endsWith
.
Custom filters
Filters (nested, or otherwise) may be funtions that accept values and return a boolean-like value.
const compileFilter = require('monjo');
const query = {
age(age) {
return age % 10 === 0;
},
};
const filter = compileFilter(query);
const users = getUsers();
for (let validUser of users.filter(filter)) {
// do stuff
}