我正在使用带有(C#).NET代码的Google Cloud数据存储区,我在数据存储区中有一个名为Audit的表,其中包含以下列
ID /名称(长),ID(长),ActionType(字符串),GroupType(字符串),DateTime(TimeStamp),CompanyID(长),UserID(长),ObjectID(长),IsDeleted(布尔)< / p>
仅供参考,ID /名称和ID都包含相同的信息
我想像这样运行GQL查询
SELECT * FROM审计WHERE GroupType ='XYZ'AND ActionType ='CREATED'AND CompanyID = 152738292和IsDeleted = false按ID排序
我似乎没有得到正确的复合键并继续获得“您的数据存储区没有此查询所需的复合索引(开发人员提供)”
这是使用index.yaml创建的复合索引。
- kind: Audit properties: - name: ID direction: desc - name: IsDeleted - name: CompanyID direction: desc - name: GroupType - name: ActionType
欢迎任何有关此主题的帮助!!
如果您需要其他信息,请告诉我
答案 0 :(得分:2)
对于此查询,您需要一个复合索引,其中ID
是最后一个元素,其排序顺序与查询中的排序顺序相匹配。例如:
- kind: Audit
properties:
- name: IsDeleted
- name: CompanyID
direction: desc
- name: GroupType
- name: ActionType
- name: ID
(ID在此索引定义中以升序方式隐式排序。)