Find Records

Returns a list of records from the model as a JSON array of objects.

GET /:model

Results may be filtered, paginated, and sorted based on the blueprint configuration and/or parameters sent in the request.

If the action was triggered via a socket request, the requesting socket will be "subscribed" to all records returned. If any of the returned records are subsequently updated or deleted, a message will be sent to that socket's client informing them of the change. See the docs for Model.subscribe() for details.

Parameters

All parameters are optional.

Parameter Type Details
* ((string)) To filter results based on a particular attribute, specify a query parameter with the same name as the attribute defined on your model.

For instance, if our Purchase model has an amount attribute, we could send GET /purchase?amount=99.99 to return a list of $99.99 purchases.
where ((string)) Instead of filtering based on a specific attribute, you may instead choose to provide a where parameter with a Waterline WHERE criteria object, encoded as a JSON string. This allows you to take advantage of contains, startsWith, and other sub-attribute criteria modifiers for more powerful find() queries.

e.g. ?where={"name":{"contains":"theodore"}}
limit ((number)) The maximum number of records to send back (useful for pagination). Defaults to 30.

e.g. ?limit=100
skip ((number)) The number of records to skip (useful for pagination).

e.g. ?skip=30
sort ((string)) The sort order. By default, returned records are sorted by primary key value in ascending order.

e.g. ?sort=lastName%20ASC
populate ((string)) If specified, overide the default automatic population process. Accepts a comma separated list of attributes names for which to populate record values. See here for more information on how the population process fills out attributes in the returned list of records according to the model's defined associations.
callback ((string)) If specified, a JSONP response will be sent (instead of JSON). This is the name of a client-side javascript function to call, to which results will be passed as the first (and only) argument

e.g. ?callback=my_JSONP_data_receiver_fn

find Example

Find the 30 newest purchases in our database.

[
 {
   "amount": 49.99,
   "id": 1,
   "createdAt": "2013-10-18T01:22:56.000Z",
   "updatedAt": "2013-10-18T01:22:56.000Z"
 },
 {
   "amount": 99.99,
   "id": 47,
   "createdAt": "2013-10-14T01:22:00.000Z",
   "updatedAt": "2013-10-15T01:20:54.000Z"
 }
]

Using jQuery:

$.get('/purchase?sort=createdAt DESC', function (purchases) {
  console.log(purchases);
});

Using Angular:

$http.get('/purchase?sort=createdAt DESC')
.then(function (res) {
  var purchases = res.data;
  console.log(purchases);
});

Using sails.io.js:

io.socket.get('/purchase?sort=createdAt DESC', function (purchases) {
  console.log(purchases);
});

Using cURL:

curl http://localhost:1337/purchase?sort=createdAt%20DESC

Notes

  • The example above assumes "rest" blueprints are enabled, and that your project contains a Purchase model and an empty PurchaseController. You can quickly achieve this by running:

    $ sails new foo
    $ cd foo
    $ sails generate api purchase