Apply LoopBack filters to Arrays

Usage no npm install needed!

<script type="module">
  import loopbackFilters from 'https://cdn.skypack.dev/loopback-filters';



⚠️ LoopBack 3 is in Maintenance LTS mode, only critical bugs and critical security fixes will be provided. (See Module Long Term Support Policy below.)

We urge all LoopBack 3 users to migrate their applications to LoopBack 4 as soon as possible. Refer to our Migration Guide for more information on how to upgrade.


This module implements LoopBack style filtering without any dependencies on LoopBack.


$ npm install loopback-filters


Below is a basic example using the module

var applyFilter = require('loopback-filters');
var data = [{foo: 'bar'}, {bat: 'baz'}, {foo: 'bar'}];
var filter = {where: {foo: 'bar'}};

var filtered = applyFilter(data, filter);


The output would be:

[{foo: 'bar'}, {foo: 'bar'}]



// return items where
  where: {
    // the price > 10 && price < 100
    and: [
        price: {
          gt: 10
        price: {
          lt: 100

    // match Mens Shoes and Womens Shoes and any other type of Shoe
    category: {like: '.* Shoes'},

    // the status is either in-stock or available
    status: {inq: ['in-stock', 'available']}

Only include objects that match the specified where clause. See full list of supported operators.

Geo Filter / Near

applyFilter(data, {
  where: {
    location: {near: '153.536,-28'}
  limit: 10

Sort objects by distance to a specified GeoPoint.


Sort objects by one or more properties.

Limit / Skip

Limit the results to a specified number. Skip a specified number of results.


Include or exclude a set of fields in the result.

Note: Inclusion from loopback is not supported!


See the LoopBack docs for the filter syntax.

Module Long Term Support Policy

This module adopts the Module Long Term Support (LTS) policy, with the following End Of Life (EOL) dates:

Version Status Published EOL
1.x Maintenance LTS Dec 2017 Dec 2020

Learn more about our LTS plan in docs.