anchor.diff:      return this;
     }
   
  +  SelectorBuilder metaTextScore(String fieldName) {
  +    _ensureParamFields();
  +    paramFields[fieldName] = {'\$meta' : "textScore"};
  +  }
   
     SelectorBuilder fields(List<String> fields) {
  -    if (paramFields == null) {
  -      paramFields = {};
  -    }
  +    _ensureParamFields();
       for (var field in fields) {
         paramFields[field] = 1;
       }
       return this;
     }
  +
     SelectorBuilder excludeFields(List<String> fields) {
  -    if (paramFields == null) {
  -      paramFields = {};
  -    }
  +    _ensureParamFields();
       for (var field in fields) {
         paramFields[field] = 0;
       }
  
positive.code:     map["orderby"][fieldName] = order;
      return this;
    }
    SelectorBuilder hint(String fieldName, {bool descending: false}){
      _query;
      if (!map.containsKey("\$hint")){
  
negative.code:     return this;
    }
    SelectorBuilder sortBy(String fieldName, {bool descending: false}){
      _ensureOrderBy();
      int order = 1;
      if (descending){
        order = -1;
  