我在GAE上写了一个Go应用程序
我有一个名为Connection{Token, ToAdress, FromAdress}
我想将它存储在数据存储区中,以便我可以通过它查找
GetConnectionByT(Token string)
但也通过
GetConnectionByA(FromAdress,ToAdress string)
这样做的最佳方式是什么?现在我的Connect类型有两个不同的.key()
函数,每次添加时都会插入带有不同键的重复条目,但这感觉非常错误:)
datastore.NewQuery("Connection").Filter
还有什么路要走? Seames认为密钥应该更快更便宜?但如果不是如何过滤多个字段?
答案 0 :(得分:1)
如果您选中the documentation for datastore.Query.Filter,则会注意到多个过滤器已进行AND运算。所以你可以做这件事:
q := datastore.NewQuery("Connection").
Filter("FromAddress =", a1).
Filter("ToAddress =", a2).
Order("-FromAddress")
如果您有相关实体的密钥,那么是的,使用密钥可能会更快。但是,从你的问题中的描述来看,这有点难以理解。