docs: function C(dbCursor) {
          var chain = dbCursor;
  
          _.each(['sort', 'skip', 'limit', 'projection'], function(fName) {
              this[fName] = function() {
                  chain = chain[fName].apply(chain, arguments);
                  return this;
              }
          }.bind(this));
  
          this.exec = function(){
              return convertToPromise(chain, 'exec', [], function(data) {
                  if(_.isArray(data)) return dbCallbacks.find(data);
                  if(_.isObject(data)) return dbCallbacks.findOne(data);
                  return data;
              });
          };
      }