faltu v0.1.0
Faltu
Search sort, filter, limit and iterate over an array of objects in Mongo-style.
Installation
In NodeJS:
npm install faltu --save
For other projects simply download and include the file in your pages:
<script src="faltu.min.js"></script>
Usage
All the data passed is expected to be an array or objects.
e.g:
[record, record, ..., record]
All the data returned is also of the same type.
For example:
var data = [{
name: "John",
age: 16
},{
name: "Doe",
age: 18
},{
name: "Smith",
age: 22
}];
Pass the array to constructor:
In NodeJS:
var Faltu = require('faltu');
var faltuData = new Faltu(data);
Searching
You can use find
method for searching.
Search for all the guys who are 18 years of age:
var newData = new Faltu(data).find({
age: 18
}).get();
newData
would look something like:
[{
name: "Doe",
age: 18
}]
Search for all the guys who are 18 years of age or older:
var newData = new Faltu(data).find({
age: {
$gte: 18 // $gte is similar to >= (greater than or equal to)
}
}).get();
newData
:
[{
name: "Doe",
age: 18
},{
name: "Smith",
age: 22
}]
Other supported comparison operators in find
are:
$lt
: <$lte
: <=$gt
: >$ne
: !=
Search for all the guys who are 18 or 16 years of age:
var newData = new Faltu(data).find({
age: [16, 18]
}).get();
newData
:
[{
name: "John",
age: 16
},{
name: "Doe",
age: 18
}]
Passing null
, empty object {}
or nothing to find
means not performing any search.
Sorting
Use sort
to sort the result in descending order by age
:
var newData = new Faltu(data).find({
age: [16, 18]
}).sort({
age: -1 // 1 = ASC, -1 = DESC
}).get();
newData
:
[{
name: "Doe",
age: 18
},{
name: "John",
age: 16
}]
Limit
Let's get only 1 object back:
var newData = new Faltu(data).find().limit(1).get();
newData
:
[{
name: "John",
age: 16
}]
Skip
Let's skip 1st object:
var newData = new Faltu(data).find().skip(1).get();
newData
:
[{
name: "Doe",
age: 18
},{
name: "Smith",
age: 22
}]
Skip & Limit
Let's skip 1st object:
var newData = new Faltu(data).find().skip(1).limit(1).get();
newData
:
[{
name: "Doe",
age: 18
}]
Filtering
You can also perform jQuery
-esque filtering yourself. Call filter
method, pass a function
.
var newData = new Faltu(data).find().filter(function (person) {
return person.age == 16; // return true if you want to keep the object
}).get();
newData
:
[{
name: "John",
age: 16
}]
Iterate
each
iterates over all the records returned.
var newData = new Faltu(data).find(null).each(function(person, index){
console.log('User name:', person.name);
});
8 years ago