php - 如何从 gcloud 数据存储中检索有序数据(使用 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中,日期字段默认按升序排列。
如果要按降序查询,则需要按降序显式定义日期字段的索引,包括查询中的所有其他字段。
还要确保在索引实体时检查是否从索引中排除了任何字段。
如果您确定所有这些都井井有条,那么它应该可以工作。
推荐阅读
- c# - EFCore 2.2 找不到 CLR 类型“表达式 []”的关系类型的映射
- sql - 按每个数字的倍数的值分组
- java - viewHolder.setItemClickListener() 不工作
- swift - Swift 扩展仅在符合 Class AND 协议时
- apache-kafka - 无法设置 kerberized kafka 代理:使用 Zookeeper 仲裁成员进行身份验证时出错:仲裁成员的 saslToken 为空
- jenkins - 可以在 Jenkins 中禁用“归档工件”吗?
- reactjs - 使用 react-testing-library 选择子组件
- php - PHP代码没有输出我需要的东西。我怎样才能解决这个问题?
- jquery - 如何在 html 中的图像标签中调用 Jquery 变量
- javascript - JavaScript:将未知数量的参数从一种方法传递给另一种方法