A fields filter specifies properties (fields) to include or exclude from the results.
Node.js API
{ fields: {propertyName: <true|false>, propertyName: <true|false>, ... } }
Where:
- propertyName is the name of the property (field) to include or exclude.
<true|false>
signifies eithertrue
orfalse
Boolean literal. Usetrue
to include the property orfalse
to exclude it from results.
also can be used an array of strings with the properties
{ fields: [propertyName, propertyName, ... ] }
By default, queries return all model properties in results. However, if you
specify at least one fields filter with a value of true
or put it in the
array, then by default the query will include only those you specifically
include with filters.
REST API
filter[fields]=propertyName&filter[fields]=propertyName...
Note that to include more than one field in REST, use multiple filters.
Check out the usage of stringified JSON format in a REST query.
Examples
Use case 1: Include required properties.
To return customer information only with name
and address
, and hide other
fields, you can specify all required properties as:
await customerRepository.find({fields: ['name', 'address']});
Its equivalent stringified JSON format:
/customers?filter={"fields":["name","address"]}
Returns:
[
{
name: 'Mario',
address: '8200 Warden Ave'
},
{
name: 'Luigi',
address: '999 Avenue Rd'
},
...
]
Use case 2: Exclude properties.
Exclude the password
property for returned user:
await userRepository.find({fields: {password: false}});
Or use stringified JSON format:
/users?filter={"fields":{"password":false}}
Notice that fields
clause is to include/exclude the result from the
database, e.g if you would like to check password
for users, the above
example would fail as password
is undefined. If you need the property and also
want to hide it from the response, set it as a
hidden property in the model definition.