我想使用用户输入的字符串作为实体的唯一键。假设用户输入已存在于数据存储区中的密钥,我想返回错误。由于golang数据存储区API只有Put也可以兼作Insert,因此强制执行唯一性约束的最佳方法是什么?
目前我正在尝试......
Query(T).Filter("Key =", key)
...其中key是根据用户输入的值构造的,用于测试是否存在重复,但是2个相同的键似乎在过滤器中使用等号(false
)运算符返回=
但是{{ 1}}在结果上调用true
时。
如何按密钥查询?
答案 0 :(得分:1)
您应该使用魔术常量__key__
按键过滤:
Query(T).Filter("__key__ =", key)
参考文献:
我同意这有点模糊,而且记录不足。
答案 1 :(得分:1)
按键查询称为“获取”:https://developers.google.com/appengine/docs/go/datastore/entities#Go_Retrieving_an_entity
通过密钥相等进行查询和过滤几乎没有意义。