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
2 番目の引数としてオプションを受け取ります。
例えば:
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 ) ;
} ) ;