Busque, clasifique, filtre, limite e itere sobre una variedad de objetos en estilo Mongo.
En NodeJS :
npm install faltu --save
Para otros proyectos simplemente descargue e incluya el archivo en sus páginas:
< script src =" faltu.min.js " > </ script >
Se espera que todos los datos pasados sean una matriz u objetos.
p.ej:
[array, array, ..., array]
Todos los datos devueltos también son del mismo tipo.
Por ejemplo:
var data = [ {
name : "John" ,
age : 16
} , {
name : "Doe" ,
age : 18
} , {
name : "Smith" ,
age : 22
} ] ;
Pase la matriz al constructor:
En NodeJS :
var Faltu = require ( 'faltu' ) ;
var faltuData = new Faltu ( data ) ;
En otros entornos:
var faltuData = new Faltu ( data ) ;
Puede utilizar el método find
para buscar. Busca a todos los chicos que tengan 18 años:
var newData = new Faltu ( data ) . find ( {
age : 18
} ) . get ( ) ;
newData
se vería así:
[ {
name : "Doe" ,
age : 18
} ]
Siempre debes llamar get
al final si quieres recuperar una matriz. O simplemente devolverá la instancia faltu
.
Busca a todos los chicos que tengan 18 años o más:
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
} ]
Otros operadores de comparación admitidos en find
son:
$lt
: <$lte
: <=$gt
: >$ne
: !=Busca a todos los chicos que tengan 18 o 16 años:
var newData = new Faltu ( data ) . find ( {
age : [ 16 , 18 ]
} ) . get ( ) ;
newData
:
[ {
name : "John" ,
age : 16
} , {
name : "Doe" ,
age : 18
} ]
Pasar null
, objeto vacío {}
o nada que find
significa no realizar ninguna búsqueda. find
acepta opciones como segundo argumento.
p.ej:
var newData = new Faltu ( data ) . find ( {
age : [ 16 , 18 ]
} , {
sort : {
age : - 1
}
} ) . get ( ) ;
Devolverá los datos en orden descendente por age
. Además de sort
también puedes pasar:
skip
limit
unique
Utilice sort
para ordenar el resultado en orden descendente por 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
} ]
Recuperemos solo 1 objeto:
var newData = new Faltu ( data ) . find ( ) . limit ( 1 ) . get ( ) ;
newData
:
[ {
name : "John" ,
age : 16
} ]
Saltemos el primer objeto:
var newData = new Faltu ( data ) . find ( ) . skip ( 1 ) . get ( ) ;
newData
:
[ {
name : "Doe" ,
age : 18
} , {
name : "Smith" ,
age : 22
} ]
Saltemos el primer objeto:
var newData = new Faltu ( data ) . find ( ) . skip ( 1 ) . limit ( 1 ) . get ( ) ;
newData
:
[ {
name : "Doe" ,
age : 18
} ]
Puede obtener un resultado que sea único mediante una clave.
var newData = new Faltu ( data ) . find ( ) . unique ( 'age' ) . get ( ) ;
También puede realizar el filtrado jQuery
-esque usted mismo. Llame al método filter
y pase una 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
} ]
each
itera sobre todos los registros devueltos.
var newData = new Faltu ( data ) . find ( null ) . each ( function ( person , index ) {
console . log ( 'User name:' , person . name ) ;
} ) ;