faltu
1.0.0
以 Mongo 风格对对象数组进行搜索排序、过滤、限制和迭代。
在NodeJS中:
npm install faltu --save
对于其他项目,只需下载该文件并将其包含在您的页面中:
< script src =" faltu.min.js " > </ script >
所有传递的数据都应该是数组或对象。
例如:
[array, array, ..., array]
所有返回的数据也是同一类型。
例如:
var data = [ {
name : "John" ,
age : 16
} , {
name : "Doe" ,
age : 18
} , {
name : "Smith" ,
age : 22
} ] ;
将数组传递给构造函数:
在NodeJS中:
var Faltu = require ( 'faltu' ) ;
var faltuData = new Faltu ( data ) ;
在其他环境下:
var faltuData = new Faltu ( data ) ;
您可以使用find
方法进行搜索。搜索所有 18 岁以下的男性:
var newData = new Faltu ( data ) . find ( {
age : 18
} ) . get ( ) ;
newData
看起来像:
[ {
name : "Doe" ,
age : 18
} ]
如果你想要返回一个数组,你应该总是在最后调用get
。或者它只会返回faltu
实例。
搜索所有年满 18 岁或以上的男性:
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
} ]
find
中其他支持的比较运算符有:
$lt
:<$lte
:<=$gt
:>$ne
:!=搜索所有 18 岁或 16 岁的男性:
var newData = new Faltu ( data ) . find ( {
age : [ 16 , 18 ]
} ) . get ( ) ;
newData
:
[ {
name : "John" ,
age : 16
} , {
name : "Doe" ,
age : 18
} ]
传递null
、空对象{}
或不find
任何内容意味着不执行任何搜索。 find
接受选项作为第二个参数。
例如:
var newData = new Faltu ( data ) . find ( {
age : [ 16 , 18 ]
} , {
sort : {
age : - 1
}
} ) . get ( ) ;
将按age
降序返回数据。除了sort
之外,您还可以传递:
skip
limit
unique
使用sort
将结果按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
} ]
让我们只返回 1 个对象:
var newData = new Faltu ( data ) . find ( ) . limit ( 1 ) . get ( ) ;
newData
:
[ {
name : "John" ,
age : 16
} ]
让我们跳过第一个对象:
var newData = new Faltu ( data ) . find ( ) . skip ( 1 ) . get ( ) ;
newData
:
[ {
name : "Doe" ,
age : 18
} , {
name : "Smith" ,
age : 22
} ]
让我们跳过第一个对象:
var newData = new Faltu ( data ) . find ( ) . skip ( 1 ) . limit ( 1 ) . get ( ) ;
newData
:
[ {
name : "Doe" ,
age : 18
} ]
您可以通过键返回唯一的结果。
var newData = new Faltu ( data ) . find ( ) . unique ( 'age' ) . get ( ) ;
您还可以自己执行jQuery
式过滤。调用filter
方法,传递一个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
都会迭代返回的所有记录。
var newData = new Faltu ( data ) . find ( null ) . each ( function ( person , index ) {
console . log ( 'User name:' , person . name ) ;
} ) ;