1

(C#).NETコードでGoogle Cloudデータストアを使用しています。次の列を持つAudit in Datastoreというテーブルがあります

ID/Name (long)、ID (long)、ActionType (String)、GroupType (String)、DateTime (TimeStamp)、CompanyID (long)、UserID (long)、ObjectID (long)、IsDeleted (boolean)

参考までに、ID/名前とIDの両方に同じ情報が含まれています

このようにGQLクエリを実行したい

SELECT * FROM Audit WHERE GroupType='XYZ' AND ActionType='CREATED' AND CompanyID=152738292 and IsDeleted=false ID 順

私は正しい複合キーを取得していないようで、「あなたのデータストアには、このクエリに必要な複合インデックス (開発者提供) がありません」というメッセージが表示され続けます。

index.yaml を使用して作成された複合インデックスを次に示します。

- 種類: 監査

  プロパティ:
  - 名前: ID
    方向: 降順
  - 名前: IsDeleted
  - 名前: CompanyID
    方向: 降順
  - 名前: グループタイプ
  - 名前: アクションタイプ

この件に関するヘルプをいただければ幸いです!!

追加情報が必要な場合はお知らせください

4

1 に答える 1

2

このクエリでIDは、 が最後の要素である複合インデックスが必要であり、その並べ替え順序はクエリの並べ替え順序と一致します。例えば:

- kind: Audit
  properties:
  - name: IsDeleted
  - name: CompanyID
    direction: desc
  - name: GroupType
  - name: ActionType
  - name: ID

(このインデックス定義では、ID は暗黙的に昇順にソートされます。)

于 2016-11-21T17:36:00.690 に答える