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
callback ((number)) 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