猿问

Golang - 使用 [] 字节比较的 Appengine 数据存储过滤器查询

我正在尝试对数据存储区中的一组实体执行过滤查询,但我尝试使用相等运算符查询的实体字段的类型为 []byte,我不知道 appengine 数据存储区是否可以执行这个比较


这是我的实体:


type Data struct {

 Id          int64  `json:"id"`

 Version     int32  `json:"-"`

 HMAC        []byte `json:"-"`

 Status      string `json:"status"`

}

这是我的查询逻辑


func (view *DataView) GetDataByHMAC(hmac []byte) (Data, error) {

    view_key := datastore.NewKey(view.context, "View", "data-view", 0, nil)

    data := make([]Data, 0)

    query := datastore.

       NewQuery("ViewData").

       Ancestor(view_key).

       Filter("HMAC = ", hmac)

    _, err := query.GetAll(view.context, &data)

    if err != nil {

       return Data{}, err

    }

    if len(data) == 0 {

       return Data{}, ErrNoData

    }

    return data[0], nil

}

它构建但不返回任何结果,即使在 10 秒内以编程方式重试后,我也不相信这是数据存储和我存储在那里的视图数据之间的最终一致性问题。


我的主要问题是:appengine 数据存储是否允许查询在类型为 []byte 的字段上使用比较过滤器?


米琪卡哇伊
浏览 163回答 2
2回答
随时随地看视频慕课网APP

相关分类

Go
我要回答