rethinkdb / rethinkdb-go

Go language driver for RethinkDB
Apache License 2.0
1.65k stars 182 forks source link

IsEmpty result #470

Closed cirelli94 closed 4 years ago

cirelli94 commented 4 years ago

How to retrieve the result from an IsEmpty()?

I'm trying to do something like:

    if result, err = r.Table("car").
        Filter(r.Row.Field("car_id").Eq(mycar.id)).
        Filter(r.Row.Field("deleted").Eq(false)).
        IsEmpty().
        Run(Session); err != nil {
                return false, err
    }

where before was:

    if result, err = r.Table("reservation").
        Filter(r.Row.Field("car_id").Eq(mycar.id)).
        Filter(r.Row.Field("deleted").Eq(false)).
        Run(Session); err != nil {
                return false, err
    }

    var row interface{}
    err = result.One(&row)
    if err == r.ErrEmptyResult {
        return true, nil
    } else if err != nil {
        return false, nil
    }
cirelli94 commented 4 years ago

I solved with:

    var err error
    var result *r.Cursor

    if result, err = r.Table("car").
        Filter(r.Row.Field("car_id").Eq(mycar.id)).
        Filter(r.Row.Field("deleted").Eq(false)).
        IsEmpty().
        Run(Session); err != nil {
                return false, err
    }

    var isEmpty bool
    if err := result.One(&isEmpty); err != nil {
        return false, err
    }