No support for multiple conditional sorts?

func transformBsoncoreDocument(registry *bsoncodec.Registry, val interface{}, mapAllowed bool, paramName string) (bsoncore.Document, error) {

if registry == nil {

    registry = bson.DefaultRegistry

}

if val == nil {

    return nil, ErrNilDocument

}

if bs, ok := val.([]byte); ok {

    // Slight optimization so we'll just use MarshalBSON and not go through the codec machinery.

    val = bson.Raw(bs)

}

if !mapAllowed {

    refValue := reflect.ValueOf(val)

    if refValue.Kind() == reflect.Map && refValue.Len() > 1 {

        return nil, ErrMapForOrderedArgument{paramName}

    }

}

// TODO(skriptble): Use a pool of these instead.

buf := make([]byte, 0, 256)

b, err := bson.MarshalAppendWithRegistry(registry, buf[:0], val)

if err != nil {

    return nil, MarshalError{Value: val, Err: err}

}

return b, nil

}

Multiple conditional sort is not supported from the source code?why?

I know why but how to solve this problem?