Google App Engine中的查询/数据存储出现问题-Go API

我正在使用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)

任何帮助,将不胜感激,谢谢!^ _ ^


ITMISS
浏览 185回答 1
1回答

素胚勾勒不出你

查询要求按排序Id desc,而索引字段未建立索引时,您应该:将TweetData批注重写为索引ID字段:    Id int64 `json:"id"`删除查询的Order子句:    q := datastore.NewQuery("TweetData").Filter("Screen_name =", twitterUser).Limit(10)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go