2017-12-06 17 views
0

私は、文字列のプロパティBarを持つ簡単なテストオブジェクトFooを持っています。 .GetAll( "Foo")クエリを実行すると、すべてのオブジェクトが返されますが、.Order( "Bar")を追加すると何も返されません。私は、オブジェクトとプロパティを指定するindex.yamlの有無にかかわらず、ソート順の有無にかかわらず試しました。私は何が欠けていますか?私はBarプロパティで "noindex"を使用していません。データストアクエリは、結果の注文時にデータを返しません。

type Foo struct { 
    Bar string 
} 

.NewQuery("Foo").Order("Bar").GetAll(c, &foo) <-- nothing returned 

.NewQuery("Foo").GetAll(c, &foo) <-- objects returned 
+0

[Google App Engine Datastoreは、Order句がある場合、行を返しません]の重複可能性があります(https://stackoverflow.com/questions/47446523/google-app-engine-datastore-returns-no-rows-if-i-注文句/ 47455578#47455578)。 – icza

+0

あなたのFoo構造体と挿入(put)とクエリのためのコードを追加してください。 –

+0

@icza私はそれを正確にやっています。 「noindex」プロパティはありません。私はすべてをローカルで実行していますが、空のデータストアから始めて1つまたは複数のレコードを追加しても、.Order()が指定されたレコードは返されません。 –

答えて

1

エンティティは挿入の瞬間にインデックスが付けられます。

  1. 構造体フィールドにデータストアの注釈がnoindexでないことを確認してください。
  2. コメントなど(あなたの構造体のフィールドは、アノテーションでプロパティ名を変更しないことを確認してください:あなたはPropertyLoadSaverをオーバーライドしていなかったとプロパティがunindexableことはありません確認し

    バーの文字列// datastore:bar

  3. 。そして、名前を変更しないでください。それはあなたのPut()のコードとあなたのクエリではおそらく問題での問題ではありませんので、あなたが財産に注文することができ、データストアビューアで

  4. チェックを。
関連する問題