亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何忽略datastore.Query.GetAll()中的錯誤?

如何忽略datastore.Query.GetAll()中的錯誤?

Go
慕娘9325324 2021-05-07 17:48:52
我剛剛開始使用Go運行時開發GAE應用程序,到目前為止,這是我的榮幸。但是,我遇到了以下挫折:通過利用具有相同實體名稱(“項目”)保存的具有不同屬性的多個不同結構,我利用了數據存儲區提供的靈活性。在圍棋的語言數據存儲的參考指出:“實際類型通過沒有獲取和放置通話之間,甚至在不同的應用程序引擎的要求相匹配”,因為實體實際上只是一系列屬性,因此可以存儲在適當的容器可以支持他們的類型。我需要查詢存儲在實體名稱“ Item”下的所有實體,并將它們全部一次編碼為JSON。使用實體屬性的靈活性,我的優勢,它可以存儲查詢實體為任意的datastore.PropertyList,但是,Get和GetAll函數返回ErrFieldMismatch當被查詢實體的屬性不能恰當的表示(即,不兼容的類型,或錯誤只是一個缺失的值)。我要保存的所有這些結構都是用戶生成的,大多數值是可選的,因此將空值保存到數據存儲區中。將這些結構保存為空值沒有問題(再次具有數據存儲的靈活性),但是在檢索它們時也存在問題。在數據存儲區Go文檔中還指出,由Get方法的調用者決定由于空值而返回的錯誤是可忽略的,可恢復的還是致命的。我想知道如何正確執行此操作,因為僅忽略錯誤是不夠的,因為datastore.PropertyList當查詢導致此錯誤時,查詢的目標結構()根本不會被填充。預先謝謝您,對于冗長的問題,我們深表歉意。更新:這是一些代碼query := datastore.NewQuery("Item") // here I use some Filter calls, as well as a Limit call and an Order callitems := make([]datastore.PropertyList, 0)_, err := query.GetAll(context, &items) // context has been obviously defined beforeif err != nil {    // something to handle the error, which in my case, it's printing it and setting the server status as 500}更新2:這是一些輸出如果使用make([]datastore.PropertyList, 0),則會得到以下信息:datastore: invalid entity type如果使用make(datastore.PropertyList, 0),我會得到:datastore: cannot load field "Foo" into a "datastore.Property": no such struct field在兩種情況下(我認為可以丟棄的第一種情況),items我都會得到以下結果:[]
查看完整描述

1 回答

?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

go數據存儲區模塊尚不支持PropertyList。

使用指向切片的指針datastore.Map代替。


查看完整回答
反對 回復 2021-05-10
  • 1 回答
  • 0 關注
  • 229 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號