如何从 gcloud 数据存储中检索有序数据(使用 php)?
How to retrieve ordered data from gcloud datastore (using php)?
如果我不使用'->order',我可以从数据存储中获取数据。代码在这里,
$ancestorKey = $datastore->key('usercomment', 'default');
$query = $datastore->query()
->kind('comment')
->hasAncestor($ancestorKey)
->limit(20);
$result = $datastore->runQuery($query);
但如果我再添加一行,
$ancestorKey = $datastore->key('usercomment', 'default');
$query = $datastore->query()
->kind('comment')
->hasAncestor($ancestorKey)
->order('date', Query::ORDER_DESCENDING)
->limit(20);
$result = $datastore->runQuery($query);
然后,我一无所获。我试图添加一个 index.yaml 文件
indexes:
- kind: comment
ancestor: yes
properties:
- name: date
direction: desc
仍然没有,请帮助。
非常感谢
在 Google Cloud Datastore 中 date 字段默认为 ascending 顺序。
如果您想按 descending 顺序查询,您需要在 desc 顺序中明确定义日期字段的索引,包括所有其他字段在您的查询中。
另外请务必检查在为实体编制索引时是否从索引中排除了任何字段。
如果您确定所有这些都在 顺序 那么它应该可以工作。
最后发现应该是
->order('date', 'DESCENDING')
而不是
->order('date', Query::ORDER_DESCENDING)
不知道为什么,但它有效。
如果我不使用'->order',我可以从数据存储中获取数据。代码在这里,
$ancestorKey = $datastore->key('usercomment', 'default');
$query = $datastore->query()
->kind('comment')
->hasAncestor($ancestorKey)
->limit(20);
$result = $datastore->runQuery($query);
但如果我再添加一行,
$ancestorKey = $datastore->key('usercomment', 'default');
$query = $datastore->query()
->kind('comment')
->hasAncestor($ancestorKey)
->order('date', Query::ORDER_DESCENDING)
->limit(20);
$result = $datastore->runQuery($query);
然后,我一无所获。我试图添加一个 index.yaml 文件
indexes:
- kind: comment
ancestor: yes
properties:
- name: date
direction: desc
仍然没有,请帮助。 非常感谢
在 Google Cloud Datastore 中 date 字段默认为 ascending 顺序。
如果您想按 descending 顺序查询,您需要在 desc 顺序中明确定义日期字段的索引,包括所有其他字段在您的查询中。
另外请务必检查在为实体编制索引时是否从索引中排除了任何字段。
如果您确定所有这些都在 顺序 那么它应该可以工作。
最后发现应该是
->order('date', 'DESCENDING')
而不是
->order('date', Query::ORDER_DESCENDING)
不知道为什么,但它有效。