Поисковая сортировка, фильтрация, ограничение и перебор массива объектов в стиле 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
} ]
Давайте пропустим 1-й объект:
var newData = new Faltu ( data ) . find ( ) . skip ( 1 ) . get ( ) ;
newData
:
[ {
name : "Doe" ,
age : 18
} , {
name : "Smith" ,
age : 22
} ]
Давайте пропустим 1-й объект:
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 ) ;
} ) ;