我正在尝试对数据存储区中的一组实体执行过滤查询,但我尝试使用相等运算符查询的实体字段的类型为 []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 的字段上使用比较过滤器?
相关分类