2016-08-11 4 views
0

クライアントパッケージcloud.google.com/go/datastoreを使用してrpc error: code = 9 desc =(エラーメッセージに「desc」はありません)が表示されます。GRPCコード9は、時間の前提条件に失敗しました。Goクライアントを使用した時間フィルタクエリ

私は、構造体があります。

type UserWidget struct { 
    ID  string `datastore:"id"` 
    UserID string `datastore:"user"` 
    Widget string `datastore:"widget"` 
    Updated time.Time `datastore:"updated"` 
} 

を私は人口データストアに対してクエリを実行しようとしています:

q := ds.NewQuery(userWidgetEntity) 
q = q.Filter("user =", userID) 
q = q.Filter("updated >", time.Now().Add(-1*duration)) 

更新されたフィルタが設定されていない場合、クエリは正常に実行し、上記のエラーが発生した場合は失敗します。データストア内のデータも表示され、更新されたフィールドがインデックスとしてリストされます。 GQL update < DATETIME()クエリも正しく実行されます。私はhttps://github.com/GoogleCloudPlatform/gcloud-golang/blob/master/datastore/query.go#L165を見て、合成リテラルを扱うようには見えません。多分それは問題ですか?

答えて

0

複数のプロパティのフィルタでは、インデックスを定義する必要があります。

indexes: 
    - kind: UserWidget 
    properties: 
    - name: user 
    - name: updated 

これは、エラーメッセージに含める必要があります。残念ながらbugが起こっていることを防ぐことができます。

+0

ちょうど、intフィールドに切り替えることを試みましたが、どちらも機能しませんでした。ありがとう! – artushin

関連する問題