【发布时间】:2015-03-18 21:29:55
【问题描述】:
我正在尝试使用他们的电子邮件地址在 appengine 数据存储中查找用户。我正在使用 Go。
此代码找不到用户。
var users []entity.User
q := datastore.NewQuery("users").Filter("AccountEmail =", "email@address.com")
_, err := q.GetAll(c, &users)
如果我更改查询以使用“Id”属性查找用户,则它可以正常工作。
var users []entity.User
q := datastore.NewQuery("users").Filter("Id", "185804764220139124118")
_, err := q.GetAll(c, &users)
我已确认“AccountEmail”的属性名称和值是正确的。 "AccountEmail" 也被索引了。
是否需要对电子邮件地址进行一些特殊的格式化才能使查询正常工作?
【问题讨论】:
-
电子邮件地址不需要特殊格式。字符串是字符串。显示您的实体类型声明。使用数据存储查看器确认具有给定属性的实体存在。
-
它是存储为字符串还是字节切片之类的其他东西?
-
@fredrik - “AccountEmail”存储为字符串。
-
@Thundercat - 我已在数据存储查看器中确认“用户”实体确实存在并且属性名称“AccountEmail”存在。
-
你确定没有空格什么的吗?如果你通过 id 获取
fmt.Printf("%#v", users),你会得到什么输出?
标签: google-app-engine go google-cloud-datastore