0.1.7 • Published 5 years ago
loopback-component-relation-filter v0.1.7
loopback-component-relation-filter
Advanced Relation Filter for loopback (3)
Purpose
By default, Loopback3 does not allow filtering over relations and related models. This component enables said feature by adding query pre-processing which loads the ids of the requested entities in one single query from the database.
Configuration
Enable/disable extended searching for all models in your component-config.json
{
    "loopback-component-relation-filter": {
        "enabled": true
    }
}Enable/disable searching for a specific model in your model-config.json (or also in your models definition file):
{
    "YourModel": {
        "options": {
            "relationFilter": {
                "enabled": false
            }
        }
    }
}Usage
The component uses Loopback's where query to create a big sql query against the database. Enable the filtering on your model and nest your where queries. The component supports a majority of the documented operators except near and regexp.
// e.g. load all books having an author which is employed by a certain publisher and is older than
// a certain age
const filter = {
    where: {
        author {
            employer: {
                identifier: 'fancy-publishing'
            },
            age: {
                gt: 20,
            },
        },
    },
};
const books = await Book.find(filter);