我正在使用Go API使用Google App Engine,儘管我嘗試了一切,但無法使Queries返回數據存儲中的數據。我可以看到,Put()作品如預期,而實體可列/訪問從現有的管理控制檯檢查從dev_appserver.py
Google App Engine中的查詢/數據存儲問題 - Go API
的結構我存儲的定義是這樣的:
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)
任何幫助,將不勝感激,謝謝!^_^
注意,你不一定需要一個指針傳遞給'[] * TweetData'到'GetAll',一個指向'[] TweetData'也能正常工作。 – proppy