Edit Page

.find()

Find records in your database that match the given criteria.

var records = await Something.find(criteria);

Usage

#
Argument Type Details
1 criteria Dictionary The Waterline criteria to use for matching records in the database.
Result
#
Type Description
Array of Dictionary The array of records from your database that match the given criteria.
Errors
#
Name Type When?
UsageError Error Thrown if something invalid was passed in.
AdapterError Error Thrown if something went wrong in the database adapter.
Error Error Thrown if anything else unexpected happens.

See Concepts > Models and ORM > Errors for examples of negotiating errors in Sails and Waterline.

Example

#
A basic find query
#

To find any users named Finn in the database:

var usersNamedFinn = await User.find({name:'Finn'});
sails.log('Wow, there are %d users named Finn.  Check it out:', usersNamedFinn.length, usersNamedFinn);
Using projection
#

Projection selectively omits the fields returned on found records. This is useful for achieving faster performance and greater security when passing found records to the client. The select clause in a Waterline criteria takes an array of strings that correspond with attribute names. The record ID is always returned.

var usersNamedFinn = await User.find({
  where: {name:'Finn'},
  select: ['name', 'email']
});

might yield:

[
  {
    id: 7392,
    name: 'Finn',
    email: 'finn_2017@gmail.com'
  },
  {
    id: 4427,
    name: 'Finn',
    email: 'walkingfinn@outlook.com'
  }
  // ...more users named Finn and their email addresses
]

Notes

#

Is something missing?

If you notice something we've missed or could be improved on, please follow this link and submit a pull request to the sails repo. Once we merge it, the changes will be reflected on the website the next time it is deployed.

Reference

Reference