.find()Find records in your database that match the given criteria.
var records = await Something.find(criteria);
| Argument | Type | Details | |
|---|---|---|---|
| 1 | criteria | The Waterline criteria to use for matching records in the database. | 
| Type | Description | 
|---|---|
| The array of records from your database that match the given criteria. | 
| Name | Type | When? | 
|---|---|---|
| UsageError | Thrown if something invalid was passed in. | |
| AdapterError | Thrown if something went wrong in the database adapter. | |
| Error | Thrown if anything else unexpected happens. | 
See Concepts > Models and ORM > Errors for examples of negotiating errors in Sails and Waterline.
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);
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
]
- This method can be used with
 await, promise chaining, or traditional Node callbacks.