Class ydn.db.Query

The class Query  represents a query for retrieving entities from a storage instance. query

Query is not directly instantiated, but instead obtained from from method of a storage instance.

var q = db.from('store name');
q.list(function(x) {
  console.log(x)
});
Methods
count()
Count number of records.
db.from('author').where('company', '=', 'Google').count().done(function(cnt) {
  console.log('Number of authors from Google:' + cnt);
});
Returns:
{!ydn.db.Request} Returns a request object.
done: {number} Return number of records.
fail: {Error} Resulting error object on executing the query.

open(callback, scope)
Open iterator to perform iteration process.
Parameters:
{!function(!ydn.db.ICursor): (Object|boolean|IDBKey|undefined)} next_callback
Callback function to receive stream of cursors. Optionally return next cursor advancement.
{*=} scope
Optional. An optional scope to call the callback in.
Returns:
{!ydn.db.Request} Returns a request object.
done: {} Result not defined.
fail: {Error} Resulting error object on executing the query.

patch(arg1, arg2)
Update field(s) of record value.
db.from('author', '=', 1).patch({company: 'Facebook'});

Or using two arguments

db.from('author').where('company', '=', 'Google').patch('company', 'Facebook');
Parameters:
{!Object|string|!Array.<string>} arg1
If only one argument is given, it is an object. If optional second argument is given, this is field name or array of field names.
{boolean=} arg2
Optional. Corresponding field value(s).
Returns:
{!ydn.db.Request} Returns a request object.
done: {number} Result not defined.
fail: {Error} Resulting error object on executing the query.

order(field_name, descending)
Build a query using given sort order.
db.from('author').order('born', true).list(10).done(function(user) {
  console.log(user); // 10 youngest authors
});
Parameters:
{string|!Array.<string>} field_name
Field name to be ordered in query result. By default ordering is in ascending direction.
{boolean=} descending
Optional. Order in descending direction.
Returns:
{!ydn.db.Query} Returns a newly created query object.

reverse()
Build a query in reverse ordering of result set.
Returns:
{!ydn.db.Query} Returns a newly created query object.

list(limit)
Execute query into array.

List method is the primary way of executing an query.

db.from('author').where('hobby', '=', 'camping').list(10).done(function(authors) {
  console.log(authors); // 10 campers
});

Although a query is immutable, query has state with cursor position. A cursor position is defined by effective key and primary key. When an query is execute again, it resume from its cursor position. The following query will list next 10 author having 'camping' hobby.

db.from('author').where('hobby', '=', 'camping').list(10).done(function(authors) {
  console.log(authors); // next 10 campers
});
Parameters:
{number=} limit
Optional. Limit number of results.
Returns:
{!ydn.db.Request} Returns a request object.
done: {!Array} Return list of records.
fail: {!Array.<Error>} Resulting error object on executing the query.

where(field_name, op, value, op2, value2)
Build a query with where clause.
db.from('author').where('first', '^', 'B').list(10).done(function(authors) {
  console.log(authors); // list 10 authors having first name started with 'B'
});
Parameters:
{string} field_name
Field name.
{string} op
Operator symbol. One of '<', '<=', '=', '>', '>=', '^'. The last operator is for string value having starts with.
{IDBKey} value
Left value for the operator.
{string=} op2
Optional. Operator symbol.
{IDBKey=} value2
Optional. Left value for the operator.
Returns:
{!ydn.db.Query} Returns a newly created query object.