我正在使用Go API与Google App Engine一起玩,尽管尝试了一切,但我无法获得查询返回数据存储中的数据。我可以看到Put()可以正常工作,并且通过检查管理控制台(可从以下位置查看)可以列出/访问实体dev_appserver.py我存储的结构是这样定义的:type TweetData struct { Id int64 `datastore:",noindex" json:"id"` Text string `datastore:",noindex" json:"text"` Screen_name string `json:"screen_name"`}我查询它的电话是这样的:func getDatastoreTweets(c appengine.Context, twitterUser string) []*TweetData { q := datastore.NewQuery("TweetData").Filter("Screen_name =", twitterUser).Order("-Id").Limit(10) var oldTweets []*TweetData if _, err := q.GetAll(c, &oldTweets); err != nil { fmt.Printf("Getall had non-nil error! %v\n", err) } return oldTweets}对于此查询,err它永远不会为非零,但始终返回0结果,即使控制台告诉我有很多结果也是如此。在SDK提供的留言簿示例之后,我也尝试了没有Filter调用的尝试,但没有成功。如果键存在问题(如果我理解正确,不太可能,因为我正在查询属性),则对的调用Put如下:// tweetData passed in via parameter...key := datastore.NewIncompleteKey(c, "TweetData", nil)_, err := datastore.Put(c, key, &tweetData)任何帮助,将不胜感激,谢谢!^ _ ^
1 回答
素胚勾勒不出你
TA贡献1827条经验 获得超9个赞
查询要求按排序Id desc
,而索引字段未建立索引时,您应该:
将TweetData批注重写为索引ID字段:
Id int64 `json:"id"`
删除查询的Order子句:
q := datastore.NewQuery("TweetData").Filter("Screen_name =", twitterUser).Limit(10)
- 1 回答
- 0 关注
- 184 浏览
添加回答
举报
0/150
提交
取消