慕的地6264312
2021-09-21 20:48:56
我正在嘗試使用他們的電子郵件地址在 appengine 數據存儲區中查找用戶。我正在使用 Go。此代碼找不到用戶。var users []entity.Userq := datastore.NewQuery("users").Filter("AccountEmail =", "[email protected]")_, err := q.GetAll(c, &users)如果我更改查詢以使用“Id”屬性查找用戶,則它可以正常工作。var users []entity.Userq := datastore.NewQuery("users").Filter("Id", "185804764220139124118")_, err := q.GetAll(c, &users)我已經確認“AccountEmail”的屬性名稱和值是正確的?!癆ccountEmail” 它也被編入索引。是否有一些特殊的格式需要使用電子郵件地址完成才能使查詢工作?
1 回答
MMTTMM
TA貢獻1869條經驗 獲得超4個贊
為了通過電子郵件 ( AccountEmail)找到用戶,必須滿足以下所有條件。請檢查并確保每個“測試”通過:
AccountEmail必須存在具有屬性名稱的實體。不要忘記屬性名稱區分大小寫。注意datastore名稱和struct字段名稱可能不同,可以使用tags來更改,例如AccountEmail string `datastore:"email"`該屬性必須被索引。請注意,屬性是否被索引可能因實體而異,因此您可能有一個實體
AccountEmail被索引而另一個實體AccountEmail未被索引。AccountEmail必須有一個類型string。我認為這是微不足道的,也是如此。但請注意,可以使用與User類型不同的string類型保存屬性,例如,當您在數據存儲查看器中列出實體時,電子郵件將像電子郵件字符串一樣顯示,但顯然它是不同的。要找到具有 的用戶
AccountEmail="[email protected]",保存的值必須"[email protected]"完全相同。小寫字母和大寫字母不一樣!空格(和所有空白字符)很重要!請檢查保存的值是否完全正確,因為例如打印時您不會看到尾隨空格,但它們會導致不匹配!此外,一些 unicode 字符具有相同的視覺外觀(它們看起來相同)但它們的 unicode 代碼點不相同,也會導致不匹配。
- 1 回答
- 0 關注
- 263 瀏覽
添加回答
舉報
0/150
提交
取消
