猿问

Google App Engine - ByteString 查询失败

我正在开发一个 Go 应用程序,其中我有一个带有属性的实体,该属性包含一个随机字节串的标识令牌。我将此属性存储为 ByteString,并且在我的开发环境中,我已经能够使用以下形式的过滤器查询此属性:


// token is a []byte

idTok := datastore.ByteString(token)

q := ds.NewQuery("Entity").Filter("IDToken =", idTok)


var entities []Entity

keys, err := q.GetAll(c, &entities)

但不幸的是,当作为模块部署到 GAE 时,此查询返回错误:datastore: bad query filter value type: unsupported datastore value type: datastore.ByteString,这令人困惑,因为我认为 ByteString 类型的目的是能够索引 500 字节以下的更短数量的二进制数据。


我首先根据这个 SO 问题的第二个答案切换到使用 ByteString 类型:Golang - Appengine datastore filter query with []byte compare


江户川乱折腾
浏览 195回答 1
1回答

牧羊人nacy

大约一周后,此问题自行解决。由于它只出现在模块环境中,我猜测他们的某些代码没有更新以支持 ByteString 类型,现在是。现在效果很好!
随时随地看视频慕课网APP

相关分类

Go
我要回答