function(criteria, limit, cb) {
        if (_.isFunction(limit)) { cb = limit; limit = undefined; }
        var self = this;
        var query = buildQuery(criteria, limit);
        client.createCollection(options(self, query), translateSDKCallback(function (err, collection) {
          if (err) { return cb(err); }
          cb(null, wrapCollection(self, collection));
        }));
      }
function(criteria, limit, cb) {
        if (_.isFunction(limit)) { cb = limit; limit = undefined; }
        var self = this;
        var query = buildQuery(criteria, limit);
        client.createCollection(options(self, query), translateSDKCallback(function (err, collection) {
          if (err) { return cb(err); }
          cb(null, wrapCollection(self, collection));
        }));
      }
function ( criteria , limit , cb ) { if ( _ . isFunction ( limit ) ) { cb = limit ; limit = undefined ; } var self = this ; var query = buildQuery ( criteria , limit ) ; client . createCollection ( options ( self , query ) , translateSDKCallback ( function ( err , collection ) { if ( err ) { return cb ( err ) ; } cb ( null , wrapCollection ( self , collection ) ) ; } ) ) ; }
query with attributes - returns an array of entities limit is optional
query with attributes - returns an array of entities limit is optional