code: func (ns *Namespace) checkWhereMap(seqv, kv, mv reflect.Value, path []string, op string) (interface{}, error) {
  	rv := reflect.MakeMap(seqv.Type())
  	keys := seqv.MapKeys()
  	for _, k := range keys {
  		elemv := seqv.MapIndex(k)
  		switch elemv.Kind() {
  		case reflect.Array, reflect.Slice:
  			r, err := ns.checkWhereArray(elemv, kv, mv, path, op)
  			if err != nil {
  				return nil, err
  			}
  
  			switch rr := reflect.ValueOf(r); rr.Kind() {
  			case reflect.Slice:
  				if rr.Len() > 0 {
  					rv.SetMapIndex(k, elemv)
  				}
  			}
  		case reflect.Interface:
  			elemvv, isNil := indirect(elemv)
  			if isNil {
  				continue
  			}
  
  			switch elemvv.Kind() {
  			case reflect.Array, reflect.Slice:
  				r, err := ns.checkWhereArray(elemvv, kv, mv, path, op)
  				if err != nil {
  					return nil, err
  				}
  
  				switch rr := reflect.ValueOf(r); rr.Kind() {
  				case reflect.Slice:
  					if rr.Len() > 0 {
  						rv.SetMapIndex(k, elemv)
  					}
  				}
  			}
  		}
  	}
  	return rv.Interface(), nil
  }
docs: // checkWhereMap handles the where-matching logic when the seqv value is a Map.