Pesquise, classifique, filtre, limite e itere em uma variedade de objetos no estilo Mongo.
No NodeJS :
npm install faltu --save
Para outros projetos basta baixar e incluir o arquivo em suas páginas:
< script src =" faltu.min.js " > </ script >
Espera-se que todos os dados passados sejam uma matriz ou objetos.
por exemplo:
[array, array, ..., array]
Todos os dados retornados também são do mesmo tipo.
Por exemplo:
var data = [ {
name : "John" ,
age : 16
} , {
name : "Doe" ,
age : 18
} , {
name : "Smith" ,
age : 22
} ] ;
Passe o array para o construtor:
No NodeJS :
var Faltu = require ( 'faltu' ) ;
var faltuData = new Faltu ( data ) ;
Em outros ambientes:
var faltuData = new Faltu ( data ) ;
Você pode usar o método find
para pesquisar. Procure todos os rapazes com 18 anos:
var newData = new Faltu ( data ) . find ( {
age : 18
} ) . get ( ) ;
newData
seria algo como:
[ {
name : "Doe" ,
age : 18
} ]
Você deve sempre chamar get
no final se quiser um array de volta. Ou apenas retornará a instância faltu
.
Pesquise todos os caras com 18 anos ou mais:
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
} ]
Outros operadores de comparação suportados em find
são:
$lt
: <$lte
: <=$gt
: >$ne
: !=Pesquise todos os rapazes com 18 ou 16 anos:
var newData = new Faltu ( data ) . find ( {
age : [ 16 , 18 ]
} ) . get ( ) ;
newData
:
[ {
name : "John" ,
age : 16
} , {
name : "Doe" ,
age : 18
} ]
Passar null
, objeto vazio {}
ou nada para find
significa não realizar nenhuma pesquisa. find
aceita opções como segundo argumento.
por exemplo:
var newData = new Faltu ( data ) . find ( {
age : [ 16 , 18 ]
} , {
sort : {
age : - 1
}
} ) . get ( ) ;
Retornará os dados em ordem decrescente por age
. Além de sort
você também pode passar:
skip
limit
unique
Use sort
para classificar o resultado em ordem decrescente 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
} ]
Vamos recuperar apenas 1 objeto:
var newData = new Faltu ( data ) . find ( ) . limit ( 1 ) . get ( ) ;
newData
:
[ {
name : "John" ,
age : 16
} ]
Vamos pular o primeiro objeto:
var newData = new Faltu ( data ) . find ( ) . skip ( 1 ) . get ( ) ;
newData
:
[ {
name : "Doe" ,
age : 18
} , {
name : "Smith" ,
age : 22
} ]
Vamos pular o primeiro objeto:
var newData = new Faltu ( data ) . find ( ) . skip ( 1 ) . limit ( 1 ) . get ( ) ;
newData
:
[ {
name : "Doe" ,
age : 18
} ]
Você pode retornar um resultado exclusivo por uma chave.
var newData = new Faltu ( data ) . find ( ) . unique ( 'age' ) . get ( ) ;
Você também pode realizar a filtragem do tipo jQuery
por conta própria. Chame o método filter
, passe uma 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 os registros retornados.
var newData = new Faltu ( data ) . find ( null ) . each ( function ( person , index ) {
console . log ( 'User name:' , person . name ) ;
} ) ;