anchor.diff:      map["\$hint"][fieldName] = order;
       return this;
     }
  -  
  +
     SelectorBuilder comment(String commentStr){
       _query;
       map["\$comment"] = commentStr;
  
positive.code:     }
      return this;
    }
  /// Combine current expression with expression in parameter. 
  /// [See MongoDB doc](http://docs.mongodb.org/manual/reference/operator/and/#op._S_and)
  /// [SelectorBuilder] provides implicit `and` operator for chained queries so these two expression will produce
  /// identical MongoDB queries
  ///  
  ///     where.eq('price', 1.99).lt('qty', 20).eq('sale', true);
  ///     where.eq('price', 1.99).and(where.lt('qty',20)).and(where.eq('sale', true))
  ///
  /// Both these queries would produce json map:
  ///  
  ///     {'\$query': {'\$and': [{'price':1.99},{'qty': {'\$lt': 20 }}, {'sale': true }]}}
    SelectorBuilder and(SelectorBuilder other) {
      if (_query.isEmpty) {
  
negative.code: 
  
    SelectorBuilder fields(List<String> fields) {
      if (paramFields == null) {
        paramFields = {};
      }
      for (var field in fields) {
        paramFields[field] = 1;
      }
      return this;
    }
    SelectorBuilder excludeFields(List<String> fields) {
      if (paramFields == null) {
        paramFields = {};
      }
      for (var field in fields) {
        paramFields[field] = 0;
      }
  