Query language to perform complex object searches.
Queryl allows one to build complex queries to match JavaScript objects. This can be useful to:
- Search collections of objects (even heterogeneus).
- Validate objects.
- Assert properties of an object for testing purposes.
Install queryl
by running:
$ npm install --save queryl
Kind: static method of queryl
Summary: Query an object
Returns: Boolean
- whether it matches or not
Access: public
Param | Type | Description |
---|---|---|
query | Object |
query |
object | Object |
object |
Example
queryl.match({
$or: {
$equal: {
foo: 'bar'
},
$and: {
$not: {
$match: {
foo: /^baz/
}
},
$gt: {
bar: 3
}
}
}
}, {
foo: 'hello world',
bar: 5
});
> true
Kind: static method of operations
Properties
Name | Type | Description |
---|---|---|
$and | function |
logical conjunction |
Example
queryl.match({
$and: {
$equal: {
foo: 'bar'
},
$match: {
bar: /^hello/
}
}
}, {
foo: 'bar',
bar: 'hello world'
});
> true
Kind: static method of operations
Properties
Name | Type | Description |
---|---|---|
$or | function |
logical disjunction |
Example
queryl.match({
$or: {
$equal: {
foo: 'bar'
},
$match: {
bar: /^hello/
}
}
}, {
foo: 'bar',
bar: 'hey there'
});
> true
Kind: static method of operations
Properties
Name | Type | Description |
---|---|---|
$not | function |
logical negation |
Example
queryl.match({
$not: {
$equal: {
foo: 'bar'
}
}
}, {
foo: 'baz'
});
> true
This operation supports deep equality.
Kind: static method of operations
Properties
Name | Type | Description |
---|---|---|
$equal | function |
equality |
Example
queryl.match({
$equal: {
foo: 'bar'
}
}, {
foo: 'bar'
});
> true
This operation supports deep equality.
Kind: static method of operations
Properties
Name | Type | Description |
---|---|---|
$contain | function |
collection include |
Example
queryl.match({
$contain: {
foo: 1
}
}, {
foo: [ 1, 2, 3 ]
});
> true
Kind: static method of operations
Properties
Name | Type | Description |
---|---|---|
$match | function |
RegExp match |
Example
queryl.match({
$match: {
foo: /^hello/
}
}, {
foo: 'hello world'
});
> true
Kind: static method of operations
Properties
Name | Type | Description |
---|---|---|
$gt | function |
greater than |
Example
queryl.match({
$gt: {
foo: 5
}
}, {
foo: 6
});
> true
Kind: static method of operations
Properties
Name | Type | Description |
---|---|---|
$lt | function |
less than |
Example
queryl.match({
$lt: {
foo: 5
}
}, {
foo: 4
});
> true
If you're having any problem, please raise an issue on GitHub and the IssueTrack team will be happy to help.
Run the test suite by doing:
$ gulp test
- Issue Tracker: github.com/issuetrackapp/queryl/issues
- Source Code: github.com/issuetrackapp/queryl
Before submitting a PR, please make sure that you include tests, and that jshint runs without any warning:
$ gulp lint
The project is licensed under the MIT license.